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つで一組になっている。それぞれ公開鍵、秘密鍵な� �と呼ばれる。秘密鍵はクライアントホストに格納され、� �開鍵はサーバーに格納される。
具体的な手順は以下のとおり
-
鍵のペアを作成
-
公開鍵をリモートホストにコピー
-
リモートホストに公開鍵を追加
鍵のペアを作成
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
のように使用する