2007年09月30日 13:30 [Edit]
tips - sshでパスワード無しログイン
- パスワード無しの認証ファイルを作る
$ ssh-keygen -d -f ~/.ssh/nopass-dsa -N ''
または$ ssh-keygen -d -f ~/.ssh/nopass-dsa -N '' -C you@your.example.com
-N ''がポイントです。前者の場合、ssh commentは
$USER@$HOSTになりますが、最近はDHCPでホスト名を決めちゃう場合も多いので、それがいやな場合は後者の方法で決め打ちするのがいいでしょう。完了すると、
~/.ssh/nopass-dsaと、~/.ssh/nopass-dsa.pubの二つのファイルが出来ます。前者は絶対人に渡さないように注意してください。具体的には、自分の端末として使う(ノート)パソコンだけにこのファイルを置くようにするべきでしょう。ここで一度認証ファイルを作っておけば、あとは他のリモートホストには以降の手続きを繰り返すだけでOKとなります。
- 公開キーをリモートホストに登録する
すでにリモートホストへは、パスワードありでssh loginできるとして
$ ssh remote.example.com touch ~/.ssh/authorized_keys $ cat ~/.ssh/nopass-dsa.pub | ssh remote.example.com \ 'umask 077; test -d ~/.ssh || mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys'
で行けます。
- 実際にログインしてみる
これで、
slogin -i ~/.ssh/nopass-dsa remote.example.com
でパスワードなしログインが出来るようになっているはずです。
うまく行かない場合は
slogin -v -i ~/.ssh/nopass-dsa remote.example.com
として途中経過を確認してみてください。
うまく行ったら、
alias rlogin slogin -i $HOME/.ssh/nopass-dsa
などとして、r*コマンドを置き換えておくと便利です。
このtip、"ssh nopass"とかでぐぐると出ては来るのですが、protocol 1時代のものばかり引っかかるので、protocol 2がデフォルトになった現代用に少し近代化してみた次第です。
Dan the Man with too Many Remote Hosts to Login
追記:odzさん、添削ありがとうございます。Permissionの方は改訂しました。aliasの方はそのまま。s*とr*を切り替えて使いたいという需要があるので。
Posted by dankogai at 13:30│Comments(10)│TrackBack(3)
この記事へのトラックバックURL
この記事へのトラックバック
ref:404 Blog Not Found:tips - sshでパスワード無しログイン Secure Shell のほうね。 dan さんからトラックバックが来たわけだけど、とりあえず authorized_keys のパーミッションは気にしないといけないんじゃないだろうか。というわけで、公開鍵をリモートホストに正し
SSH の件捕捉【odz buffer】at 2007年09月30日 22:52
管理人 気になる情報、ニュース
tips - sshでパスワード無しログイン(404 Blog Not Found)
スクール水着、セパレート化 (エキサイトニュース)
ロリポップ!
ニコニコ動画はアマゾンで4億円の収入?
「
管理人 気になる情報、ニュース【お得.com】at 2007年09月30日 23:22
404 Blog Not Found:tips - sshでパスワード無しログイン
404 Blog Not Found:tips - sshでパスワード無しログイン【】at 2012年01月16日 19:43
この記事へのコメント
cat ~/.ssh/nopass-dsa.pub では?
Posted by 一読者 at 2007年09月30日 15:17
$ cat ~/.ssh/nopass-dsa.pub の間違いではないですか?
Posted by foobar at 2007年09月30日 15:17
ちょっと自信ないですが、OpenSSHの将来のバージョンでは、プロトコルのバージョンにかかわらずauthorized_keysに統一するらしいですよ。
authorized_keys2は使われなくなるみたいです。
authorized_keys2は使われなくなるみたいです。
Posted by yotaro at 2007年09月30日 15:29
(一読者|foobar)さん、
え?ぎょえぇ。速攻直しました。手元の草稿では.pubがちゃんとついていたのに、なぜだろ。
yotaroさん、
そうなのですか。今でもprotocol 1のホストは結構残っていたりするので、これに関しては統一しないでほしい、というよりどうせならauthorized_keys.dsaとかauthorized_keys.rsaとか拡張子つけた方がいいように思うのだけど。
Dan the Typo Generator
え?ぎょえぇ。速攻直しました。手元の草稿では.pubがちゃんとついていたのに、なぜだろ。
yotaroさん、
そうなのですか。今でもprotocol 1のホストは結構残っていたりするので、これに関しては統一しないでほしい、というよりどうせならauthorized_keys.dsaとかauthorized_keys.rsaとか拡張子つけた方がいいように思うのだけど。
Dan the Typo Generator
Posted by 弾 at 2007年09月30日 15:41
s/時分の端末/自分の端末/
Posted by Yuichirou at 2007年09月30日 16:37
たまたま umask 022 じゃなかった場合も考慮すると、
chmod go-w authorized_keys
しといたほうがいいかもしれません。まあ、-v すればすぐわかると思いますが。
chmod go-w authorized_keys
しといたほうがいいかもしれません。まあ、-v すればすぐわかると思いますが。
Posted by sanewo at 2007年09月30日 19:09
統合されたのは結構まえですね > authorized_keys
ノシ http://www.unixuser.org/~haruyama/security/openssh/info.html
ノシ http://www.unixuser.org/~haruyama/security/openssh/info.html
Posted by sakuretsu at 2007年09月30日 20:16
sakuretsuさん、
反映させました。
Dan the Old SSH User
反映させました。
Dan the Old SSH User
Posted by 弾 at 2007年09月30日 20:44
odz buffer さんも書かれてますが、パスフレーズを入力したくないだけなら ssh-agent の使い方を書いたほうがよろしいかと。
パスフレーズなしで使用したいのは、パスフレーズ入力待ちで止まってほしくない場合(cron 等)がほとんどだろうし、その場合でも authorized_keys で実行できるコマンド他制限するべきでしょう。
パスフレーズなしで使用したいのは、パスフレーズ入力待ちで止まってほしくない場合(cron 等)がほとんどだろうし、その場合でも authorized_keys で実行できるコマンド他制限するべきでしょう。
Posted by foo at 2007年09月30日 23:54
そもそもこの場合のパスフレーズはブルートフォースで簡単に破られる程度の気休めであって、秘密鍵の管理を怠った時点でアウトなので。
まぁ、その他の細かい話についてはググれば
http://www.jp.freebsd.org/QandA/HTML/2255.html
に辿り着くでしょうし。
当該ページの最終更新日は2002/08/24 06:22:44とかですが内容的には特に古びてもいないので。
まぁ、その他の細かい話についてはググれば
http://www.jp.freebsd.org/QandA/HTML/2255.html
に辿り着くでしょうし。
当該ページの最終更新日は2002/08/24 06:22:44とかですが内容的には特に古びてもいないので。
Posted by a at 2007年10月01日 04:22