windows10开启ssh服务 windows自带的ssh工具是干什么的( 三 )

生成密钥以后,公钥必须上传到服务器,才能使用公钥登录 。
OpenSSH 规定,用户公钥保存在服务器的~/.ssh/authorized_keys文件 。你要以哪个用户的身份登录到服务器,密钥就必须保存在该用户主目录的~/.ssh/authorized_keys文件 。只要把公钥添加到这个文件之中,就相当于公钥上传到服务器了 。每个公钥占据一行 。如果该文件不存在,可以手动创建 。
用户可以手动编辑该文件,把公钥粘贴进去,也可以在本机计算机上,执行下面的命令 。
$ cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" 上面示例中,user@host要替换成你所要登录的用户名和主机名 。
注意,authorized_keys文件的权限要设为644,即只有文件所有者才能写 。如果权限设置不对,SSH 服务器可能会拒绝读取该文件 。
$ chmod 644 ~/.ssh/authorized_keys 只要公钥上传到服务器,下次登录时,OpenSSH 就会自动采用密钥登录,不再提示输入密码 。
$ ssh -l username shell.isp.comEnter passphrase for key \\\'/home/you/.ssh/id_dsa\\\': ************Last login: Mon Mar 24 02:17:27 2014 from ex.ample.comshell.isp.com> 上面例子中,SSH 客户端使用私钥之前,会要求用户输入密码(passphrase),用来解开私钥 。

需要注意的是在Windows terminal中ssh-copy-id无法使用,只能手动上传
密钥创建示例 附上我的密钥创建实例:
PS C:Usersadmin> ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (C:Usersadmin/.ssh/id_rsa): C:UsersadminOneDrive/.ssh/id_rsaEnter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved inC:UsersadminOneDrive/.ssh/id_rsa.Your public key has been saved in C:UsersadminOneDrive/.ssh/id_rsa.pub.The key fingerprint is:***The key\\\'s randomart image is:***PS C:Usersadmin> cat C:UsersadminOneDrive/.ssh/id_rsa.pub//此步显示所创建的公钥,复制所有内容PS C:Usersadmin> ssh kerm@52.184.**.**kerm@HK1:~$ sudo -iroot@HK1:~# mkdir -p ~/.sshroot@HK1:~# nano ~/.ssh/authorized_keys//将之前复制的公钥贴入,我将=号后的内容删除,因为有多台设备利用这个公钥登录root@HK1:~# chmod 644 ~/.ssh/authorized_keys
备注:为了实现多端同步免密登录,这里我密钥的存储位置选为了OneDrive同步文件夹 。这样虽然不安全,但是很方便 。
将登录信息写入配置文件,一键登录
也可以直接编辑配置文件 。新版既然已经提供GUI,我就直接在GUI操作了 。
导航栏下拉进入设置-配置文件-添加新配置文件-新建空配置文件 。在命令行一栏填入:
ssh -i 密钥路径 user@ip示例:ssh -i C:UsersadminOneDrive/.ssh/id_rsa root@52.184.***.**

推荐阅读