第十七章:第51节Linux安全防护——SecureCRT 和 Winscp ssh无密码登录

更新于:2024-11-19 15:00:45

在刚开始学习Linux的第2节,楠神就推荐了一篇文章《深入了解SSH原理》。


这篇文章必须要仔细看一遍,这样对ssh加密传输数据的原理能做个详细了解。


文章的末尾有介绍,ssh不光可以账号密码登录,也可以使用一对密钥实现无密码登录(基于公钥的认证)。在确保客户端私钥安全的情况下,公钥认证登录比密码登录更安全。至于实现的原理,文章中有详细介绍,仔细看一遍。


这篇文章中,介绍了当客户端是Linux系统时,去实现无密码登录服务端的操作步骤。毕竟我们的个人电脑都是Windows系统居多,从Windows系统远程ssh连接Linux服务器,常使用的有SecureCRT、Winscp。这节,给大家做个补充,如何使用SecureCRT、Winscp无密码登录Linux服务器。


SecureCRT


1、Tools - Create Public Key 【工具 - 创建公钥】


1.png


2、密钥类型选择RSA


1.png


3、为私钥设置密码,为空跳过(如果想更安全可以设置密码)。如果设置密码,每次连接需要输入密码。这个密码是独立的密码,并不是登录账号的密码。


1.png


4、设置密钥长度


1.png


5、密钥格式选择OpenSSH


1.png


OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。确切说,Linux系统的sshd服务就是OpenSSH。《OpenSSH百度百科


到这一步,点击完成,会弹出一个提示框


14ce36d3d539b6005574d31eea50352ac75cb7e5.jpg


如果密钥准备被SecureCRT下多个会话连接使用,可以选择“是”。

如果密钥只对当前的会话连接使用,就选择“否”。


最后生成两个文件,默认是Identity和Identity.pub,其中Identity为私钥,Identity.pub为公钥。


6、把 公钥内容 复制到 远程服务器 $HOME/.ssh/authorized_keys


1.png


如果authorized_keys文件有其他客户端的公钥字符,不要覆盖了,追加在文件的后面。


7、设置SecureCRT登录模式


1.png


设置登录模式为PublicKey(公钥)


1.png


私钥文件的路径要正确。


使用全局公钥设置:表示所有连接都使用该公钥连接服务器。
使用会话公钥设置:可以分别为每个连接指定不同的公钥。


OK!测试下,楠神可以正常登录。


如果说不能登录,排查:


服务器登录用户的.ssh目录是不是700权限;

authorized_keys文件是不是600权限;

/etc/ssh/sshd_config配置文件里的以下参数对不对:

RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile    .ssh/authorized_keys


当公钥登录无误,我们可以把密码登录关闭了,减少一个安全隐患,关闭方法:

去配置文件/etc/ssh/sshd_config,把PasswordAuthentication参数改成no,然后重启sshd服务。


提示:关闭密码登录后,一定要把这一对密钥保存好,不然丢失了以后就无法使用ssh协议连接服务器了。如果发生了无法使用ssh连接服务器的事件,请回看第48节的解决方式。


Winscp


Winscp使用putty作为SSH登录工具,而puttygen所生成的是以.ppk结尾的密钥文件,所以使用SecureCRT生成的密钥会提示添加失败,此时有两种选择:

1)使用putty重新生成putty格式的密钥,并添加到服务器上。

2)将openssh格式的私钥转换成winscp支持的.ppk格式。

这里,我们选择第二种方式。如下:


1、转换密钥格式


打开winscp--》工具--》运行PuTTYgen(G)


1.png


打开puttygen 选择 Load 


1.png


选择SecureCRT生成的密钥

1.png


导入成功

1.png


保存私钥文件为.ppk格式

1.png


保存时随便命名,ppk文件生成。


2、Winscp--》高级--》SSH--》验证--》密钥文件


1.png


1.png


此时,密钥文件导入成功,重新登录即可通过winscp用密钥认证连接了。