ssh无密码登入设置

现有2台机器

1、服务器192.168.1.112

2、个人机192.168.1.110

要使110无需密码通过ssh登入112

步骤

1、创建密钥

miao@u32-192-168-1-110:~/.ssh$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): (忽略)
Enter same passphrase again: (忽略)
Your identification has been saved in /home/miao/.ssh/id_rsa.
Your public key has been saved in /home/miao/.ssh/id_rsa.pub.

2、复制公密到服务器

miao@u32-192-168-1-110:~/.ssh$ scp id_rsa.pub miao@192.168.1.112:/home/miao/.ssh/192.168.1.110
miao@192.168.1.112's password: 
id_rsa.pub                                                                   100%  404     0.4KB/s   00:00    
miao@u32-192-168-1-110:~/.ssh$ 

3、添加公密到192.168.112的信任区域

miao@debian-192-168-1-112:~/.ssh$ cat 192.168.1.110 >> authorized_keys
miao@debian-192-168-1-112:~/.ssh$ 

注: 2,3两步可由命令ssh-copy-id一步到位

miao@ubuntu-192-168-1-110:~/.ssh$ ssh-copy-id miao@192.168.1.112
Password:
Now try logging into the machine, with "ssh 'miao@192.168.1.112'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

4、启动ssh-agent

如果ssh 192.168.112返回 Agent admitted failure to sign using the key
ps -Af|grep agent查看有无ssh-agent有无运行,若没有

miao@u32-192-168-1-110:~/.ssh$ ssh-agent

5、添加id_rsa到ssh-agent

miao@u32-192-168-1-110:~/.ssh$ ssh-add id_rsa

6、完成

共6条Pingback
共14条评论
  1. westleo @ 2009-12-14 18:04:12 回复

    多谢你的文章,我不知道ubuntu还要启动一个ssh-agent,ubuntu有点弱啊,呵呵

    • JiangMiao @ 2009-12-18 05:25:09

      熟悉了就不弱了 :)

  2. tolbkni @ 2010-07-12 02:15:37 回复

    很巧,跟我名字一样,连字都一样,^_^,谢谢你的文章,不知道还要 ssh-add id_rsa,囧。

  3. fraze @ 2010-09-07 18:35:35 回复

    多谢了
    ubuntu确实要ssh-add id_rsa
    就说一直怎么不成功呢

  4. fengyqf @ 2011-05-22 00:38:20 回复

    解决问题了,非常感谢!
    本文第四节“4、启动ssh-agent”里面的
    “ps -Af|agent查看有无ssh-agent有无运行”
    应该是ps -Af |grep agent吧

    • JiangMiao @ 2011-05-22 12:22:16

      多谢纠正,已更正。

  5. zhichyu @ 2011-06-16 13:07:31 回复

    第3步应该是
    $ cat id_rsa.pub >> authorized_keys

    • JiangMiao @ 2011-06-16 16:03:46

      不是,id_rsa.pub是本机的公钥,而要加入authorized_keys是远程的机器,我这里是192.168.1.110

  6. venus @ 2011-07-25 18:43:55 回复

    多谢阿,连接

  7. wcj @ 2011-08-18 19:54:08 回复

    ubuntu中为什么连接的时候输入的命令是:ssh 用户名@ip地址才行。ssh ip地址就是不行呢?

    • JiangMiao @ 2011-08-18 20:45:51

      不加用户名意为使用当前用户名。

  8. flyfree80 @ 2011-12-01 14:11:09 回复

    这是ssh-agent错误的用法,你这种用法中,不起ssh-agent进程同样可以无密码登录。ssh-agent是用来让你免于频繁输入 ssh-keygen 时设置的密码短语的。

    • JiangMiao @ 2011-12-01 17:46:12

      多谢指教,当时用的Ubuntu 9.04,遇到错误Agent admitted failure to sign using the key,用ssh-add可以解决问题,而ssh-add需要ssh-agent运行,否则会出Could not open a connection to your authentication agent.

      在Debian 5+与ArchLinux中正如你所说,我也从来没遇到Agent admitted错误也就跳过4与5的步骤了。
      又刚刚在ArchLinux下试了下,ssh-agent需要新开shell才能启用,如ssh-agent bash。ssh-add -l显示为空。也意味着未ssh-add过任何密钥。我对ssh没有深入的研究过,也不好下判断是否是ssh版本间差异所致还是配置上所致。

发表评论

电子邮件地址不会被公开。 必填项已用*标注