天天看点

SSH 使用密钥登录并禁止口令登录实践

SSH 使用密钥登录并禁止口令登录实践

<a target="_blank"></a>

无论是个人的vps还是企业允许公网访问的服务器,如果开放22端口的ssh密码登录验证方式,被众多黑客暴力猜解捅破菊花也可能是经常发生的惨剧。企业可以通过防火墙来做限制,普通用户也可能借助修改22端口和强化弱口令等方式防护,但目前相对安全和简单的方案则是让ssh使用密钥登录并禁止口令登录。

这是最相对安全的登录管理方式
建议设置并牢记passphrase密码短语,以linux生成为例

linux:ssh-keygen -t rsa

[私钥 (id_rsa) 与公钥 (id_rsa.pub)]

windows:securcrt/xshell/putty

[ssh-2 rsa 2048]

<code>#生成ssh密钥对</code>

<code>ssh-keygen -t rsa</code>

<code></code>

<code>generating public/private rsa key pair.</code>

<code>#建议直接回车使用默认路径</code>

<code>enter file in which to save the key (/root/.ssh/id_rsa):</code>

<code>#输入密码短语(留空则直接回车)</code>

<code>enter passphrase (empty for no passphrase):</code>

<code>#重复密码短语</code>

<code>enter same passphrase again:</code>

<code>your identification has been saved in /root/.ssh/id_rsa.</code>

<code>your public key has been saved in /root/.ssh/id_rsa.pub.</code>

<code>the key fingerprint is:</code>

<code>aa:8b:61:13:38:ad:b5:49:ca:51:45:b9:77:e1:97:e1 [email protected]</code>

<code>the key's randomart image is:</code>

<code>+--[ rsa 2048]----+</code>

<code>| .o. |</code>

<code>| .. . . |</code>

<code>| . . . o o |</code>

<code>| o. . . o e |</code>

<code>|o.= . s . |</code>

<code>|.*.+ . |</code>

<code>|o.* . |</code>

<code>| . + . |</code>

<code>| . o. |</code>

<code>+-----------------+</code>

也可以手动在客户端建立目录和authorized_keys,注意修改权限

<code>#复制公钥到无密码登录的服务器上,22端口改变可以使用下面的命令</code>

<code>#ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"</code>

<code>ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]</code>

<code>#编辑sshd_config文件</code>

<code>vi /etc/ssh/sshd_config</code>

<code>#禁用密码验证</code>

<code>passwordauthentication no</code>

<code>#启用密钥验证</code>

<code>rsaauthentication yes</code>

<code>pubkeyauthentication yes</code>

<code>#指定公钥数据库文件</code>

<code>authorsizedkeysfile .ssh/authorized_keys</code>

重启ssh服务前建议多保留一个会话以防不测

<code>#rhel/centos系统</code>

<code>service sshd restart</code>

<code>#ubuntu系统</code>

<code>service ssh restart</code>

<code>#debian系统</code>

<code>/etc/init.d/ssh restart</code>

可以在== 后加入用户注释标识方便管理

<code>echo 'ssh-rsa xxxx' &gt;&gt;/root/.ssh/authorized_keys</code>

<code># 复查</code>

<code>cat /root/.ssh/authorized_keys</code>

扩展阅读

<b>原文发布时间为:2015-07-08</b>

<b></b>

<b>本文来自云栖社区合作伙伴“linux中国”</b>

继续阅读