linux配置SSH全过程
作者:天亮之前_ict
一 ssh简介
SSH为建立在应用层上的安全协议,SSH是目前非常可靠,专门为远程登录会话和其它网了服务提供安全性的协议。
利用SSH可以有效防止远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其它操作平台,默认情况下,SSH协议需要用到一个tcp22的端口号。
查看ssh服务运行情况
systemctl status sshd
二 ssh配置文件
ssh配置文件在/etc/ssh/sshd_config
- 显示root用户可以登录
- 禁止root用户登录ssh
vi /etc/ssh/sshd_config PermitRootLogin no systemctl restart sshd
- 指定普通用户lmy进行SSH登录
vi /etc/ssh/sshd_config AllowUsers lmy systemctl restart sshd
- ssh密码尝试次数
vi /etc/ssh/sshd_config MaxAuthTries 5 systemctl restart sshd
三 ssh远程登录
ssh root@servera(主机名) ssh root@172.25.254.250
正常情况下,会让你输入两个yes,然后输入密码才能ssh登录到终端,这里rhcsa系统设置了免密。
四 ssh远程登录原理
ssh和telnet、ftp等协议的主要区别在于安全性,加密的方式主要有两种:
- 对称加密(密钥加密)
- 非对称加密(公钥加密)
4.1 对称加密
所谓对称加密,指加密解密使用同一套秘钥
下面举个例子来简要说明一下对称加密的工作过程。甲和乙是一对生意搭档,他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。
上面是一个将重要资源安全传递到目的地的传统方式,只要甲乙小心保管好钥匙,那么就算有人得到保险盒,也无法打开。
但是,如果这个钥匙丢了,就不能解密了
- Client 端
- server端
4.3非对称加密
为了应对如何安全的保存密钥这个棘手的问题,非对称加密应运而生。
非对称加密有两个密钥:”公钥“和”私钥“
1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。
2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。
3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。
在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。
同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。
- 远程 Server 收到 Client 端用户的登录请求,Server 把自己的公钥发给用户
- Client 使用这个公钥,将密码进行加密
- Client 将加密的密码发送给 Server 端
- 远程 Server 用自己的私钥,解密登录密码,然后验证其合法性
- 若验证结果,给 Client 相应的响应
正常情况下,在servera上ssh到serverb,因为不信任,所有要问你是否密码验证,然后你需要输入密码才能ssh
#ssh-keygen -t rsa -P " -f ~/.ssh/id rsa
- -t 指定生成密钥类型 (rsa、dsa、ecdsa 等)
- -p 指定 passphrase,用于确保私钥的安全
- -f 指定存放密钥的文件 (公文件默认和私钥同目录下,不同的是,存放公钥的文件名需要加上后缀.pub)
这样就生成了私钥和公钥
复制公钥到管理节点
拷贝xxx-ip节点的root用户家目录下的.ssh目录下
ssh-copy-id root@xxx-ip
然后接下来ssh到serverb,不再需要密码,因为servera和serverb之间已经互相信任,二者采用了非对称加密进行ssh协议
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。