Ubuntu16.04配置Xshell与Winscp的SSH远程免密登陆
ubuntu生成密钥
1、首先查看系统是否已安装ssh,没有的话安装
sudo apt-get install openssh-server
2、关闭防火墙
sudo ufw disable
3、查看ssh是否设置开启PublicKey认证登录(),执行:
vim /etc/ssh/sshd_config
不禁止用户在没有密钥的计算机上登录也可,看个人需求
4、重启ssh
service ssh restart
5、生成密钥
cd /home/*xxx*/ ssh-keygen -t rsa -P ""
xxx指代用户名
6、将公钥追加到 authorized_keys 文件中,并改权限
cat .ssh/id_rsa.pub >> .ssh/authorized_keys chmod 600 .ssh/authorized_keys
这个authorized_keys 就是放公钥的地方,只要保证xshell和winscp里的公钥与这里的一样即可。
注:若 ~/.ssh下没有touch authorized_keys文件,则5、6步可以用下面命令替代
cd ~/.ssh touch authorized_keys
建一个空的文件,一会儿统一生成本地公钥写入
7、连接本机验证成功与否
ssh localhost
我在验证时出现了
The authenticity of host localhost (127.0.0.1) cant be established. ECDSA key fingerprint is SHA256:RbJGtidASo1hm9XIhRH3ntVuk0tufTmNctBjHTqFqnQ. Are you sure you want to continue connecting (yes/no)? Host key verification failed.
这时需要加入限定,即可成功验证
ssh -o StrictHostKeyChecking=no localhost
Xshell步骤
a.打开Xshell,工具=>新建用户密钥生成导向,下一步->下一步->下一步
b.这儿会让你输入密钥加密的密码,密钥名称自己随便定义,如果为了更安全,就设置一个吧!我的没有设置继续就可以了
c.完成之后会弹出,复制密钥 接着按导出键,将公钥文件成pub格式
4.将刚刚复制的密钥粘贴到之前创建的authorized_keys文件
5.测试登录
即可
Winscp步骤
a.站点管理器-编辑-高级 高级站点设置-ssh-验证-工具-Install Public Key into Server 将pub格式导入
大功告成