背景 起因就是我发现大部分人对 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

          Logo

          AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

          更多推荐