ラベル ssh の投稿を表示しています。 すべての投稿を表示
ラベル ssh の投稿を表示しています。 すべての投稿を表示

2010年4月18日日曜日

sshにパスワードなしでログインする方法

sshにパスワードなしでログインする設定をこちらを参考にして作成してみたが、環境のせいか、
いろいろつまずいたところを振り返る。

環境:CentOS5.4

[plain]
[root@hdp_master ~]# ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
74:80:71:18:90:0d:20:c8:e7:72:6d:c6:f2:9d:30:e4 root@hdp_master
[root@hdp_master ~]# cat id_rsa.pub >> $HOME/.ssh/authorized_keys
cat: id_rsa.pub: そのようなファイルやディレクトリはありません
[/plain]
ここでrootユーザーで作業をしていたことが原因では回帰したのでuser権限で作業することに。

$HOME/.sshの$HOMEもsshでログインしたときのディレクトリをさしているので、
デフォルトで、/home/adminが$HOMEとなる。したがって.sshへのパスは/home/admin/.sshとなる。

でもここまで何回も同じ事をやっていて、他になにか簡易的な方法がないか検索、
すると下記のコマンドで自動で作ってくれそうなのでこちらを試すことにした。
こちらのサイトを参考にさせて頂いた。

名前を、no-ssh-password.sh にして/home/adminディレクトリに作成。
[plain]
[admin@hdp_master ~]$ touch no-ssh-password.sh
[admin@hdp_master ~]$ vi no-ssh-password.sh
[/plain]
[plain]
#!/bin/sh

#------------------
# set param
hosts="hdp_master hdp_sub1"
user=admin
#user=`who -m |awk {'print $1'}`
#------------------

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

for host in ${hosts}
do
ssh ${user}@${host} 'ssh-keygen -t rsa'
ssh ${user}@${host} 'cat ~/.ssh/id_rsa.pub' | cat ->> ~/.ssh/authorized_keys
done

for host in ${hosts}
do
scp ~/.ssh/authorized_keys ${host}:~/.ssh
ssh ${user}@${host} 'chmod 700 ~/.ssh ; chmod 600 ~/.ssh/*'
done

exit
[/plain]

中略

パラメータ設定のhosts="hdp_master hdp_sub1" のホストネーム hdp_sub1で設定できず、
hdp_sub1側のネットワーク設定のホスト名はこのようにしておいたがエラーでダメだったので、
IPアドレス(192.168.3.6)にして再実行したらなんとか設定ができた。

めでたしめでたし