随笔 - 175  文章 - 202  trackbacks - 0
<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

第一个Blog,记录哈哈的生活

常用链接

留言簿(16)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

Java links

搜索

  •  

最新评论

阅读排行榜

评论排行榜

ssh 免密码登录,需要使用公私钥来认证@import url(http://www.blogjava.net/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 哈哈的日子 阅读(729) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: