使用xshell+ssh用于管理linux服务器,大概是目前最为流行的方式。
这个工具和技术涉及到:
- 计算机网络
- 加密解密
虽然不是专门的系统工程师,但还是相对频繁使用这套工具,有时候难免遇到一些不知道的问题,不得不东翻西找,很是烦人,所以计划一次性解决这些烦人的问题。
注:这里的内容,我相信某些书籍一定有阐述
在正式开始前,先阅读一些文章。
1.ssh的基本原理和操作和linux一些问题
原理-https://www.cnblogs.com/diffx/p/9553587.html
centos-pam https://blog.csdn.net/weixin_42298128/article/details/115736849
ssh无密码登录 - https://www.cnblogs.com/feshfans/p/9307407.html
2.ssh的服务端配置
主要是禁止密码登录
修改sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#有待确认
GSSAPIAuthentication no
客户端生成rsa公匙和私有钥匙,并把公匙存到服务器的authorized_keys
有多种工具都可以支持,既有winddows自带的,也可以使用xshell带的.
ssh-keygen -t rsa -C “835570372@qq.com”
在这个过程中,可以指定文件名称,避免覆盖存在的文件。
注意:ssh支持四种key:rsa,dsa,ecdsa,ed25519
3.ssh的高级应用
使用windows(10/11)自带的ssh/sftp工具登录linux(免密)
a.首先还是需要按照第2点那样交换key
b,windows首次通过ssh登录的时候,会下载centos上/etc/ssh/ssh_host_ecdsa_key.pub,并加入到本地用户的.ssh/known_hosts
格式大概是这样的:
180.102.19.91 ecdsa-sha2-nistp256 AAAAE2VjZHN还有很多省略了
自带的虽然不是很好用,但是临时对付几个服务器还是可以的。
重置服务端的/etc/ssh下的多个key
有两种方式:
a.删除,并重启sshd服务,自动生成
b.手动使用ssh-keygen生成,例如(https://blog.51cto.com/lidaxia/1922826)
ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_root_rsa_key ssh-keygen -t ecdsa -b 256 -f /etc/ssh/ssh_host_ecdsa_key ssh-keygen -t ed25519 -b 256 -f /etc/ssh/ssh_host_ed25519_key
注意,橙色部分文件名称要和sshd_config中对应配置一致即可。
例如下面就是sshd_config中指定的key
HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key HostKey /etc/ssh/ssh_host_ecdsa_key HostKey /etc/ssh/ssh_host_ed25519_key
4.开发ssh客户端
这里需要用到前面用到的GSSAPI
比较专业,网上有不少教程。这里略。