1. Home
  2. Memo
  3. SSH Memo

SSH Memo

環境 : Ubuntu 6.06 LST (VMware Host OS : Windows Xp sp2)

Last-Modified:<2008-03-20 15:19:17>

SSHは何?

SSHはSecure Shellの略。暗号や認証を用いて安全にリモートコンピュー� ��ーと 通信を行うもの。SSHといった場合、OpenSSHをさすことが多� �。ここでも OpenSSHを用いる。

インストール

% sudo apt-get install ssh

基本的な操作

リモートホストにログイン

例えばユーザー smith で 192.168.0.100 にログインするには

% ssh -l smith 192.168.0.100

ローカルにあるファイルをリモートにコピー

例えばローカルのカレントディレクトリにあるfooをリモート192.168.0.100のsmithのホームディレクトリにコピーするには
% scp foo smith@192.168.0.100:.

リモートにあるファイルをコピー

今度はsmithのホームディレクトリにあるfooをローカルのカ� ��ントディレクトリにコピーするには

% scp smith@192.168.0.100:foo .

公開鍵を使用して認証を行う

公開鍵を使用した認証では、ログインパスワードの代わり に暗号鍵を使用する。パスワードの場合と異なり 、鍵をネットワーク上に送信しないため、パスワードを使 用するより安全らしい。

鍵は2つで一組になっている。それぞれ公開鍵、秘密鍵な� �と呼ばれる。秘密鍵はクライアントホストに格納され、� �開鍵はサーバーに格納される。

具体的な手順は以下のとおり

  1. 鍵のペアを作成

  2. 公開鍵をリモートホストにコピー

  3. リモートホストに公開鍵を追加

鍵のペアを作成

Cygwinで以下を実行

% mkdir -p ~/.ssh
% chmod 700 ~/.ssh
% cd ~/.ssh
% ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/f/home/toru/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /f/home/toru/.ssh/id_rsa.
Your public key has been saved in /f/home/toru/.ssh/id_rsa.pub.
The key fingerprint is:
3d:94:08:ad:24:88:e2:1a:c3:fc:74:cd:6c:63:fc:2e toru@netvista

公開鍵をリモートホストにコピー

パスワード認証を使用してリモートホストに公開鍵をコピ ー

% scp -p id_rsa.pub toru@192.168.0.150:
toru@192.168.0.150's password:
id_rsa.pub                                    100%  395     0.4KB/s   00:00

リモートホストに公開鍵を追加

% ssh toru@192.168.0.150
toru@192.168.0.150's password:
% mkdir -p ~/.ssh
% chmod 700 ~/.ssh
% cat id_rsa.pub >> ~/.ssh/authorized_keys
% chmod 600 ~/.ssh/authorized_keys
% logout

いったんログアウトしてから、再度ログイン

% ssh toru@192.168.0.150
Enter passphrase for key '/f/home/toru/.ssh/id_rsa':

ここで、sshサーバーは公開鍵認証を行うように設定してお く、またついでにauthorized_keysの設定も

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile   %h/.ssh/authorized_keys

便利な使い方

パスワードを入力せずに認証

正確にはパスワードを一度だけ入力してあとは入力なしで 認証

ssh-agentを実行

% eval `ssh-agent`

ちなみに単独で実行させると

% ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-ewZ2aaWrgO/agent.3824; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3124; export SSH_AGENT_PID;
echo Agent pid 3124;
% ssh-agent -k
SSH_AGENT_PID not set, cannot kill agent
% kill 3124

ssh-agent -k ではなくてkill で停止(環境変数が設定されていないため)

秘密鍵をキャッシュに追加

% ssh-add ~/.ssh/id_rsa
Enter passphrase for /f/home/toru/.ssh/id_rsa:
Identity added: /f/home/toru/.ssh/id_rsa (/f/home/toru/.ssh/id_rsa)

これで、ssh,scp,sftpがパスワードを入力せずに認証できる。 これはsshエージェントがパスワードを覚えているから。使 用後は

% ssh-agent -k

sshエージェントを停止

コマンドを簡単にする

オプション指定を間単にする。~/.ssh/configに設定する。

Host vubuntu
        HostName 192.168.0.150
        User toru
        Port 2501
        IdentityFile ~/.ssh/id_rsa
Host ubuntu
        HostName 192.168.0.100
        User toru
        Port 2501
        IdentityFile ~/.ssh/id_rsa

そして

% ssh vubuntu

のように使用する

参考

Memoに戻る | Homeに戻る

Copyright (c) Toru Mano. Last-Modified: 2008-04-05 20:17:33