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

原创 2015年07月07日 13:38:43

前言

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

这是最相对安全的登录管理方式


更新历史

2015年07月07日 - 初稿

阅读原文 - http://wsgzao.github.io/post/ssh/

扩展阅读


生成PublicKey

建议设置并牢记passphrase密码短语,以Linux生成为例

Linux:ssh-keygen -t rsa
[私钥 (id_rsa) 与公钥 (id_rsa.pub)]
Windows:SecurCRT/Xshell/PuTTY
[SSH-2 RSA 2048]


#生成SSH密钥对
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:
aa:8b:61:13:38:ad:b5:49:ca:51:45:b9:77:e1:97:e1 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
|    .o.          |
|    ..   . .     |
|   .  . . o o    |
| o.  . . o E     |
|o.=   . S .      |
|.*.+   .         |
|o.*   .          |
| . + .           |
|  . o.           |
+-----------------+

复制密钥对

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


#复制公钥到无密码登录的服务器上,22端口改变可以使用下面的命令
#ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 10022 user@server"
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.241 

修改SSH配置文件

#编辑sshd_config文件
vi /etc/ssh/sshd_config

#禁用密码验证
PasswordAuthentication no
#启用密钥验证
RSAAuthentication yes
PubkeyAuthentication yes
#指定公钥数据库文件
AuthorsizedKeysFile .ssh/authorized_keys

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

#RHEL/CentOS系统
service sshd restart
#ubuntu系统
service ssh restart
#debian系统
/etc/init.d/ssh restart

手动增加管理用户

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

echo 'ssh-rsa XXXX' >>/root/.ssh/authorized_keys

# 复查
cat /root/.ssh/authorized_keys

ssh登陆远程主机(密码方式和key的方式)

连接远程主机   要使用SSH连接,自然需要相应的客户端和服务端软件,这里采用OpenSSH。记住两台主机都要装。这里为了偷懒,就直接给两台主机都装了客户端和服务端。   ...

ssh登录以及免密码登录

SSH是每一台Linux电脑的标准配置。 随着Linux设备从电脑逐渐扩展到手机、外设和家用电器,SSH的使用范围也越来越广。不仅程序员离不开它,很多普通用户也每天使用。 SSH具备多种功能,可以...

linux下ssh面密码登录设置

ssh 免密码登录 1. ssh-keygen -t rsa    三次回车 2. cat ~/.ssh/id_rsa.pub >>  ~/.ssh/authorized_keys 3...

实现ssh的无密码登录

这里所说的ssh是指OpenSSH SSH客户端,是用于登录远程主机,并且在远程主机上执行命令。它的目的是替换rlogin和rsh,同时在不安全的网络之上,两个互不信任的主机之间,提供加密的、安全的通...

ssh 避免每次都输入登陆密码

部门内部有几台服务器,大家经常登陆,但是每次使用SSH登陆过于麻烦,我们通过设置可以免去输入用户名和密码。 生成密钥 ssh-keygen 生成2个文件,位于~/.ss...

SSH本机免登陆密码

SSH本机免登陆密码 博客分类: 分布式操作系统   今天在设置Linux免登录的时候,按照Hadoop官方说明的ssh设置,然后通过ssh localhost测试,可是总是...
  • budapest
  • budapest
  • 2012年09月26日 23:43
  • 18904

ssh基本原理,口令登陆和秘钥(免密)登陆

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专...

ssh 免密码登录设置后还是提示需要输入密码

事情是这个样儿的,折腾了好几天就是搞不明白为啥设置了.ssh目录,在authorized_keys设置了key后登录还提示需要输入密码。捞干的,说怎么解决吧,注意权限,.ssh权限700,author...

linux下设置了SSH免密码登录但还是需要输入密码的解决办法

今天在设置linux的免密码登录后,仍然需要输入密码,后来找到了原因,是因为用户没有权限修改.ssh目录下的know_hosts文件导致的。 具体情况是这样的: 在/home/username/....

CentOS6.5设置完SSH免密码登录之后仍然要求输入密码的问题

搭了3台CentOS6.5的虚拟机:centos1、centos2、centos3。为了操作方便,准备设置这3台机器之间可以能过SSH免密码登录。SSH免密码登录的设置如下: SSH免密码登...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SSH使用密钥登录并禁止口令登录实践
举报原因:
原因补充:

(最多只允许输入30个字)