JITAKU_SVR_Wiki
パスフレーズなしのssh †
スクリプトなどでリモートサーバへログインし、何かのファイルを持ってきたり、置いてきたい場合には、sshのパスワードが邪魔なる。
この場合には、sshログインのパスフレーズをない状態にすることで実効できる。
以下パスフレーズなしの設定方法。
環境はubuntu8.10
鍵の作成 †
[ローカル上での作業]
hogehoge@desktop:~$ ssh-keygen -N "" -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hogehoge/.ssh/id_rsa):
Created directory '/home/hogehoge/.ssh'.
Your identification has been saved in /home/hogehoge/.ssh/id_rsa.
Your public key has been saved in /home/hogehoge/.ssh/id_rsa.pub.
The key fingerprint is:
57:fe:4d:e4:1a:1f:07:ca:24:95:2d:ad:1d:97:b1:53 hogehoge@desktop
The key's randomart image is:
TIPS:
パスフレーズなしでログインをしたいユーザになり、そのユーザで以上のコマンドを実効すること。
・コマンド
ssh-keygen = 鍵を生成するコマンド
・オプション
-N "" -Nはパスフレーズの指定。""(ダブルクォーテーション)で空をセット。~
-t 鍵のタイプ。種類はrsa1,rsa,dsa。セキュリティ的にはrsa1(ssh1用)<rsa(ssh2用)=dsa(ssh2用)~
尚、サーバによっては使用出来る暗号化のタイプが指定出来ないか可能性があるので調査が必要。
鍵の移動 †
hogehoge@desktop:~$ ssh-copy-id -i ./id_rsa.pub hogehoge@remote-host
(カレントディレクトリがid_rsa.pubがある場所で)
TIPS:
ssh-copy-id = ssh-keygenコマンドで自動生成された鍵をリモートサーバへ自動で登録してくれるコマンド。
補足 †
もし、「ssh-copy-id」コマンドが使用出来ない場合はscpコマンドで公開鍵をリモートサーバに送る。
/$HOME/.sshディレクトリにssh-keygenコマンドを使用したことで、「id_rsa.pub(公開鍵)」が出来上がる。
[ローカル上での作業]
これをリモートサーバへscpする。
$ scp /$HOME/.ssh/id_rsa.pub $USER@192.168.23.200:/home/$USER
[リモートサーバ上での作業]
$ mv /$HOME/id_rsa.pub /$HOME/.ssh/authorized_keys
$ chmod 600 /$HOME/.ssh/authorized_keys
以上を行うことで、パスフレーズなしでログインが可能になる。
2つ以上のクライアントからパスフレーズなしでログインされる場合 †
サーバとなる側に2つ以上のクライアントからパスフレーズなしのsshを受け付ける場合には、authorized_keysに公開鍵を追記していく必要がある。
クライアント側で作成された公開鍵をサーバ側へ移動させ、以下のコマンドで追記。
$ cat /$HOME/id_rsa.pub >> /$HOME/.ssh/authorized_keys
ハマったこと †
/home/$USER/ディレクトリの権限が755、または700でないとsshの仕様でパスフレーズなしのログインが出来ない。
参考URL:http://www.jamboree.jp/cms/archives/238/comment-page-1