Windows到Ubuntu免密登陆
Windows到Ubuntu免密登陆
- 首先检查C盘用户文件夹下是否有.ssh文件夹,同时检查该文件夹中是否有至少两个文件,一个是xxx_rsa和xxx_rsa.pub,一个是私钥文件一个是公钥文件。
- 如果没有的话,执行ssh-keygen -t rsa -C “你自己设定的名称或者邮箱地址”来生成新的秘钥,回车后会提示你输入密码,直接回车,不要设定密码了,这样在(1)中文件夹就会有公钥和私钥文件了
- 公钥和私钥文件有了之后,需要将公钥上传到需要免密登陆的服务器上,这个时候需要两个软件,一个是cmder可以支持部分Linux命令,还有一个xshell来上传文件。
- 先打开xshell,新建一个你需要免密登陆服务器的连接,在登陆的时候我遇到一个问题,就是明明是正确的密码但是无法登陆远程服务器
- 这个时候我们需要修改一下服务端ssh的配置,先下载启动远程连接服务工具sudo apt-get install openssh-server,完成后重启下ssh服务sudo /etc/init.d/ssh restart
- 修改/etc/ssh/sshd-config文件,PubkeyAuthentication yes修改为no,PasswordAuthentication no修改为yes就可以了,然后再次重启下服务,这个时候你就可以使用xshell通过密码连接上服务器了
- 然后在xshell下按ctrl+alt+f新建文件传输,这时候会提示你输入密码(因为刚才咱们把配置文件改为通过密码登陆,如果没改的话会提示你添加公钥),这个是xshell的命令行开头会有sftp的字样
- 使用命令put 本地公钥地址 远程服务器你要将公钥放置的地址,这个时候查看服务器,我的公钥会在home文件夹或者根文件夹下
- 找到公钥文件之后放到/root/.ssh文件夹下,如果.ssh文件夹不存在可以自己创建
- 执行 cat 公钥文件名 >> authrized_keys,新建authrized_keys文件并且将公钥文件内容复制到里面
- 然后将第四步改变的ssh配置再改回去,之后重启下ssh服务sudo /etc/init.d/ssh restart
- 这个时候你就可以使用在cmder中使用ssh -i 私钥文件路径 服务器用户名@服务器地址 这样的方式来免密登陆了
ps:Linux和Mac不需要这么麻烦,使用ssh-copy-id -i 公钥文件名 用户名@服务器地址,后面简单配置下就可以了,网上有很多教程就不赘述了