背景:
连接工具Xshell 6
目标服务器系统centOS7.3
本地系统windows
一、配置远程连接
1、ssh配置
//打开ssh配置文件
vi /etc/ssh/ssh_config
按需配置,也可关闭root用户登录,将权限所属用户改为普通用户进行登录
#关闭密码登录
PasswordAuthentication no
#允许root认证登录
PermitRootLogin yes
#允许RSA数字签名
RSAAuthentication yes
#允许公钥登录
PubkeyAuthentication yes
#默认公钥存放的位置
AuthorizedKeysFile .ssh/authorized_keys
2、权限配置
cd ~
//更改.ssh文件所有者为root(一般就是root)
l. -ls
chown root:root ~/.ssh
//.ssh目录权限一般为755或者700。仅root用户能进行写操作
chmod 700 ~/.ssh
//更改所属,配置自己可读可执行,其他用户仅可读
chown root:root ~/.ssh/authorized_keys
chmod 644 ~/.ssh/authorized_keys
3、windows本地生成公钥
名字随意,可以再给密钥加密,是对本地密钥的保护。
复制公钥,然后点击完成即可。
4、复制进要连接主机的authorized_keys中。
cd ~/.ssh
vi authorizedd_keys
5、连接
密钥选择刚才生成的那个,密码是刚才生成公钥时设的密码,不是root密码注意
就搞定啦
那如果没有呢?可能是你开启了防火墙,而防火墙又没有开放22端口。
在3.4.2https://blog.csdn.net/xiedongze__/article/details/90714356
二、原理
关于authorized_keys、id_rsa、id_rsa.pub和kown_hosts,了解这些文件的作用和功能后,就会明白上面这么操作的原因。
什么是公钥和私钥?
一般生成密钥是成对生成的,一个是公钥一个是私钥,私钥的作用是对公钥进行解密(严格保管),公钥则是对信息进行加密,当使用和私钥配对的公钥(加密方式)进行加密时,再用私钥对得到的信息进行解密。结果很明显,加密前和解密后答案一致,完成交互,即远程连接。
如何使用?
只需要将公钥放入要连接的系统B中即可,连接时会自动与本地的对于目录下的私钥进行匹配。
id_rsa和id_rsa.pub?
id_rsa和id_rsa.pub是相对的本机A生成的密钥对,前者是私钥后者是公钥。
如何使用?
当连接远程服务器B时,把id_rsa.pub放到远程服务器B的authorized_keys中即可。
有个最常见的例子就是:本地或者多人合作git上一个项目,就需要生产密钥,将id_rsa.pub放进github官网的ssh配置项。
authorized_keys?
存放其他机器的公钥,其他机器使用私钥进行访问,进行认证连接。
know_hosts?
ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。
简单来说就是同一台机器多个系统多个公钥访问同一个服务器,服务器的OpenSSH会发出警告。
什么是SSH2?
简单说,SSH是一种网络协议,用于计算机之间的加密登录。
X shell6软件?
Xshell是一个软件,是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议等。