ssh之 ~/.ssh/config 配置文件实现
背景 起因就是我发现大部分人对 SSH 只会基本的 ssh user@ip 的方式登录服务器,至多再会个配置免密,而对 SSH config
几乎不了解。事实上 SSH 可以灵活批量配置服务器信息,配置跳板等等。本文努力普及一些使用细节,希望有一天大家都熟练了 SSH
config,以后我就可以直接给别人发送 SSH config 配置项而不需要作任何解释了。 SSH config SSH config
作用就是可以把 SSH 相关的信息都记录到一个配置文件,可以简化操作、节约时间。 SSH config
有一个系统级的,一个用户级的。一般普通用户只关注用户级的。文件路径为 ~/.ssh/config 。
基本写法一般一个服务器写成一小段,形如:Host Server1 Hostname 172.16.0.1 User zhangsan Port 22
ServerAliveInterval 180 IdentityFile ~/.ssh/secret_key.pem
这段的含义为有一个服务器: 我们为它起了个名字叫 Server1 它的 IP 是 172.16.0.1(也可以填 Hostname)
我在上面的用户名是 zhangsan SSH 服务监听端口号为 22(即默认值,也可以不写这一行) ServerAliveInterval
180 表示在建立连接后,每 180 秒客户端会向服务器发送一个心跳,避免用户长时间没操作连接中断
最后一行表示使用一个专用的密钥,如果没有专用的密钥则删除该行即可。 登录这台服务器的话,输入对应连接名称即可。
~/.ssh/config配置实现
最常用的登陆方法是**ssh username@server -p port**
通过~/.ssh/confg配置文件,实现免密、更改名称的登陆方法,不论你的username、server address、port是什么,都可以不用输入,只需要输入一个替换的名称即可登陆该服务器。像这样ssh <any name here>
1、将公钥 rsa.pub 上传到服务器
使用ssh-copy-id命令将生成的公钥上传到服务器
$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@server -p 22
注意权限:chmod 600 ~/.ssh/config
常用的SSH配置项
1、config文件配置项
Host 别名
HostName 主机名
Port 端口
User 用户名
IdentityFile 密钥文件的路径
IdentitiesOnly 只接受SSH key 登录
PreferredAuthentications 强制使用Public Key验证
2、Host配置
Host配置项标识了一个配置区段。
SSH配置项参数值可以使用通配符:
'*' 代表 0~n 个非空白字符。
'?' 代表一个非空白字符。
'!' 表示例外通配。
测试
1、使用指定别名登录到www.test.com这台主机。
$ vim ~/.ssh/config
Host sshtest
HostName www.test.com
User user
Port 22
IdentityFile ~/.ssh/id_rsa_test
Host ssttest2
HostName www.test2.com
User user2
Port 222
IdentityFile ~/.ssh/id_rsa_test2
参考
https://blog.csdn.net/LZL2020LZL/article/details/146042027
https://www.cnblogs.com/gosoline/p/18454814
https://blog.csdn.net/qq_24723519/article/details/147578795
https://www.cnblogs.com/BlueBlueSea/p/16530490.html
https://blog.csdn.net/u011009161/article/details/125057791
https://blog.csdn.net/newjueqi/article/details/47293897
https://blog.csdn.net/weixin_44966641/article/details/123955997
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)