ssh 免密碼登錄,需要使用公私鑰來認證@import url(http://m.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
首先通過 ssh-keygen 生成一對公私鑰,默認在 ~/.ssh/id_rsa.pub 和 ~/.ssh/id_rsa,前面的是公鑰。
認證就是要把這個文件加到遠程用戶目錄 ~/.ssh/authorized_keys 文件中,而且這個文件的權限不能被其它人訪問。
下面的腳本能夠自動把這個文件放到遠程,方法是 ./addpk ip username password
#!//usr/bin/expect
set host [lrange $argv 0 0]
set user [lrange $argv 1 1]
set passwd [lrange $argv 2 2]
proc ssh {cmd} {
global user host passwd
spawn ssh $user@$host "$cmd"
expect {
"*conne*" {
send "yes\n"
expect "*password*"
send "$passwd\n"
expect eof
}
"*password*" {
send "$passwd\n"
expect eof
}
}
}
proc scp {src dest} {
global user host passwd
spawn scp $src $user@$host:$dest
expect {
"*conne*" {
send "yes\n"
expect "*password*"
send "$passwd\n"
expect eof
}
"*password*" {
send "$passwd\n"
expect eof
}
}
}
ssh "mkdir -p ~/.ssh"
scp "/home/user1/.ssh/id_rsa.pub" "~/.ssh/id_rsa.pub"
ssh "cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys"
ssh "uniq ~/.ssh/authorized_keys > ~/.ssh/authorized_keys.tmp"
ssh "mv ~/.ssh/authorized_keys.tmp ~/.ssh/authorized_keys"
ssh "chmod 700 ~/.ssh"
ssh "chmod 600 ~/.ssh/*"
posted on 2012-05-08 09:38
哈哈的日子 閱讀(735)
評論(0) 編輯 收藏