[原]putty使用密钥登陆OpenSSH
2021年8月27日 02:30
•
linux专区
在Windows管理Linux服务器时,常使用putty登陆ssh进行远程管理。默认登陆验证方式为密码认证,该方式虽然简单,但每次登陆都要输入一长串的密码,相当麻烦。而且,如果万一把root允许登陆打开,还有可能被强力破解,导致严重的后果。 所以,通常建议用密钥登陆验证代替密码方式,即简单,又可靠。一、为什么建议使用密钥登陆 通常现在的Linux发行版都使用OpenSSH代替telnet、rsh等明文传输的终端服务。 以红旗 DC Server 5.0为例:
引用
# rpm -qa|grep -E -w 'openssh' openssh-clients-4.0p1-1.2AX openssh-server-4.0p1-1.2AX openssh-4.0p1-1.2AX
而OpenSSH默认是同时支持密码和密钥两种认证方式的。转一个说明:
为什么要使用公钥认证 通常,通过ssh登录远程服务器时,使用密码认证,分别输入用户名和密码,两者满足一定规则就可以登录。但是密码认证有以下的缺点:
引用
a)用户无法设置空密码(即使系统允许空密码,也会十分危险) b)密码容易被人偷窥或猜到 c)服务器上的一个帐户若要给多人使用,则必须让所有使用者都知道密码,导致密码容易泄露,而且修改密码时必须通知所有人
而使用公钥认证则可以解决上述问题。
引用
a)公钥认证允许使用空密码,省去每次登录都需要输入密码的麻烦 b)多个使用者可以通过各自的密钥登录到系统上的同一个用户 c)即使修改了对应用户的密码,也不会影响登陆 d)若同时禁用密码认证,则只要保证私钥的安全,不会受到暴力破解的威胁
二、使用putty生成密钥和登陆 根据公钥认证的原理(见后面说明),认证双方任何一方都可制作该钥匙对,并且只要认证方有被认证方的公钥信息,即可匹配成功。 这里,我们先以Windows上的putty登陆Linux服务器为例说明。所以,该密钥对由putty制作。 继续前,请确保您已经把整个putty包都下载完: 官方网站:点击 最新版本:0.60,我截图的版本是0.55的。 本地下载:
下载文件
点击这里下载文件
其中包括:PuTTY、Puttygen、PSCP、Plink、Pagent 等工具。1、使用puttygen制作密钥 启动puttygen工具,为兼容OpenSSH密钥,选择“SSH2 RSA” : ※期间,你会看到进度条上面有个提示“Please generate some radomness by moving the mouse over the blank area.” ,意思就是让你用鼠标在空白区域随机移动。随着鼠标在空白区域的移动,进度条会一直走下去。停止移动鼠标,进度条也就停止了。所以,那我们要移动鼠标,直到进度条走满为止。 完成后的窗口如下:
引用
Key comment:是注释,不会影响密钥的有效性,但可作为自己用于区别其他密钥的参考; Key passphrase 和 Confirm passphrase :用于保护私钥,如果不输入该信息,那么任何人只要拿到该私钥,即可无密码登陆系统,非常危险 ;通常情况下,我是建议大家输入的,但这里为了方便说明,暂时留空,请看后面使用的说明。
随后,点击“Save private key”保留私钥。 如果没有输入Key passphrase信息,会有警告: ※公钥信息可以不用保留在本地的,puttygen可以从私钥得到它,验证时也不会用到。
2、修改openssh配置 修改/etc/ssh/sshd_config:
引用
ChallengeResponseAuthentication no #关闭挑战应答方式 UsePAM no #不使用PAM认证
然后重启sshd服务,原因见:这里
3、拷贝公钥信息 上面密钥信息窗口的“Key”框最后生成的就是公钥信息: ~/.ssh/authorized_keys 其中,“~”表示对应用户的主目录,以root为例。 若.ssh目录不存在,请创建它,并把公钥信息写入文件中:
# mkdir ~/.ssh # chmod 700 ~/.ssh # vi ~/.ssh/authorized_keys # chmod 644 ~/.ssh/authorized_keys
※请务必留意:文件和目录的权限问题,用户必须是将要进行认证的用户,而权限必须是0644,也就是禁止其他人对该文件写入信息。(否则,某些有心人把自己的公钥写入这里,他也可以无密码进来了) 因为,通常umask是0022或0002的,所以请使用chown和chmod修改为对应的权限咯。
4、使用putty使用密钥登陆 对putty进行一些简单配置,即可使用密钥登陆Linux服务器。 选择Connection-SSH-Auth,在“Private key file for authentication”输入密钥的路径: 三、使用OpenSSH生成密钥 密钥既可使用putty生成,也可用OpenSSH生成。1、Linux下生成密钥 运行:
引用
# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): <-密钥路径 Enter passphrase (empty for no passphrase): <-密钥保护密码 Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. <-私钥 Your public key has been saved in /root/.ssh/id_rsa.pub. <-公钥 The key fingerprint is: 17:28:4c:c3:e4:18:d4:c2:31:bd:be:a7:a9:d4:a8:48 root@mail.linuxfly.org
2、把公钥信息写入authorized_keys文件中 运行:
# cd ~/.ssh # cat id_rsa.pub >> authorized_keys
3、生成putty的私钥 由于SSH的标准中,并没有固定密钥文件的格式。而Putty使用的私钥格式和OpenSSH生成的有点不同,需要转换一下。 a)把id_rsa传到Windows机器上 b)使用puttygen的“Load”读取id_rsa文件
内文分页: [1] [2]
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/112505.html