Linux SSH 登录

服务器IP地址为192.168.1.1,机器名:will_s 客户端IP地址为172.16.16.1,机器名:will_c 客户端用户will需要使用ssh无密码登录服务器的will帐户

实现原理 使用”公私钥”认证的方式来进行ssh登录. 在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub; 私钥文件:~/.ssh/id_rsa) 然后把公钥放到服务器上(~/.ssh/authorized_keys), 自己保留好私钥 当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了

设置如下:

  1. 以will用户登录客户机器并在客户端机器上执行”ssh-keygen -t rsa” (注:每次执行”ssh-keygen -t rsa”产生的私钥文件都会不同)

    a)如果文件”~/.ssh/id_rsa”存在,会提示是否覆盖该文件,此时可选择”n”不覆盖该文件而使用已有的id_rsa文件; 如果选择”y”则会重新生成”~/.ssh/id_rsa”文件,接下来会提示输入passphrase, 回车确定使用空的passphrase,再次回车确认(这里也可以输出passphrase,相当于ssh时登录的密码)。 然后会重新生成”~/.ssh/id_rsa”文件和”~/.ssh/id_rsa.pub”文件。

    b)如果”~/.ssh/id_rsa”文件和”~/.ssh/id_rsa.pub”文件不存在则会自动创建新的”~/.ssh/id_rsa”文件和”~/.ssh/id_rsa.pub”文件, passphrase设置同上。

  2. 使用ssh will@192.168.1.1登录到服务器,编辑服务器上”~/.ssh/authorized_keys”文件, 将客户端机器上的”~/.ssh/id_rsa.pub”文件内容追加到”~/.ssh/authorized_keys”文件中。 (注:可以在客户端机器上使用以下命令来实现:

     cat ~/.ssh/id_rsa.pub | ssh will@192.168.1.1 "cat - >> ~/.ssh/authorized_keys" 此时会要求输入will用户在服务器上的登录密码,输入后即会将客户端机器上的"~/.ssh/id_rsa.pub"文件内容追加到服务器上的 "~/.ssh/authorized_keys"文件中) 如果是首次连接服务器会出现以下的提示,确认连接并输入密码后其他直接回车确定。
    
  3. 如果在第1步中使用了空的passphrase,则可以跳过第4步,此时在客户端即可以使用”ssh zhaoy@192.168.1.1”即可无密码登录到服务器; 如果第一步中设置了passphrase,则继续执行以下步骤。

  4. 如果第1步中设置了passphrase,则此时需要输入该passphrase登录服务器。 此时前面我们把输入密码变成了输入passphrase,这没有带来任何方便。 但是我们可以通过ssh-agent来帮助我们自动输入passphrase(只是看起来像是自动输入而已), 我们只要在第一次登录时输入一次passphrase, 以后的工作就可以交给ssh-agent。在客户端机器上执行命令ssh-add, 这里会提示输入一次passphrase。输入第一步中设置的passphrase之后会修改”~/.ssh/id_rsa”文件。 再在客户端执行”ssh will@192.168.1.1”即可无密码登录到服务器端。