Ubuntu16.04配置Xshell与Winscp的SSH远程免密登陆

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)' can't 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格式导入

大功告成

猜你喜欢

转载自blog.csdn.net/bluehatihati/article/details/111875287
今日推荐