6.9.3. 免密码远程连接

使用 “RSAAuthentication“ (SSH-1 协议) 或 “PubkeyAuthentication“ (SSH-2 协议),人们可以避免记住远程系统的密码.

在远程系统的”/etc/ssh/sshd_config“里,设置相应的条目, “RSAAuthentication yes“ 或 “PubkeyAuthentication yes“。

在本地生成授权秘钥对,并安装公钥到远程系统。

  • RSAAuthentication“: SSH-1 的 RSA key (不建议使用,因为已被废弃.)
  1. $ ssh-keygen
  2. $ cat .ssh/identity.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
  • PubkeyAuthentication“: SSH-2 的 RSA key
  1. $ ssh-keygen -t rsa
  2. $ cat .ssh/id_rsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
  • PubkeyAuthentication“: SSH-2 的 DSA key(不建议,因为慢.)
  1. $ ssh-keygen -t dsa
  2. $ cat .ssh/id_dsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"
[提示]提示

使用 SSH-2 的 DSA key 是不建议的,应为 key 较小并且慢。由于 RSA 专利已经过期,没有理由使用 DSA 来作为规避 RSA 专利的临时措施。DSA 表示 Digital Signature Algorithm,速度慢。同时参见 DSA-1571-1.

[注意]注意

为了让 “HostbasedAuthentication“ 在 SSH-2 下运行,你必须同时调整服务端主机 “/etc/ssh/sshd_config“ 和 客户机 “/etc/ssh/ssh_config“ 或 “~/.ssh/config“ 的 “HostbasedAuthentication“ 配置为 “yes“ 。