Mac SSH使用config配置文件管理多个git账户

Mac SSH使用config配置文件管理多个git账户,第1张

GitHub: ssh-keygen -t rsa -b 4096 -C "test_github@gmail.com" -f ~/.ssh/github_me_id_rsa

GitLab: ssh-keygen -t rsa -b 4096 -C "test_gitlab@gmail.com" -f ~/.ssh/gitlab_me_id_rsa

把“xxx.pub”公钥文件的完整内容粘贴到github、gitlab中设置公钥的地方保存即可

查看“~/.ssh/”目录中有无“config”文件,没有则 “touch config”命令或者“vim config(这个命令记得保存)” 创建该文件,然后编辑该文件(有配置文件的话在末尾新增即可):

配置文件使用‘Host’字段区分不同的配置段落

ssh -T <Host>: ssh -T me.github.com

它会查找并使用匹配‘Host’字段区域的配置

连接成功则提示如下:

Hi xxx(你的github用户名)! You've successfully authenticated, but GitHub does not provide shell access.(【GitLab】:Welcome to GitLab, @xxx!)

到此为止,每次访问都会输入密钥的密码,因此需要将专属密钥添加到【ssh-agent】的高速缓存中:

ssh-add <密钥文件> : ssh-add ~/.ssh/github_me_id_rsa

如果密钥有密码的话,会提示输入密码

注:添加到【ssh-agent】也并非是永久性的,如果【ssh-agent】服务重启的话管理密钥的session也就不存在了

拿【GitHub】举例

原来:git clone git@github.com :xxx_yyy.git

现在:git clone git@me.github.com :xxx_yyy.git

现状:现有的项目已经在使用中。。。

企业内部大部分服务器都只有内网,一般可以使用NAT方式正向代理访问公网资源。对于Linux来说一般通过ssh登录服务器,在没有公网IP的情况下可以修改ssh config配置文件,利用一台可以接入内网并具有公网IP的服务器作为代理或者称为Tunnel跳板机来管理,可以灵活定制访问规则并优化ssh参数让管理更加轻松。

2019年01月31日 - 初稿

阅读原文 - https://wsgzao.github.io/post/ssh-config/

扩展阅读

SSH CONFIG FILE - https://www.ssh.com/ssh/config/

ssh程序可以从三个途径获取配置参数:

上面三个途径,前面的途径传入的参数可以覆盖后面的途径传入的参数(与 linux 里的大部分应用类似)。因为/etc/ssh/ssh_config 会影响 ssh 全局的配置,因此如果想对多主机进行管理(不影响别人的情况下),可以考虑修改自己家目录下的~/.ssh/config 文件(~ 字符表示当前登录用户的家目录)。

首先看一个配置文件的 demo,假设8.8.8.8是你可以直接登录的Tunnel公网跳板机,10.65.32.0是需要管理的内网地址段,前提是8.8.8.8和内网服务器的防火墙策略均已配置正确,这里就不再赘述。

CheckHostIP no,禁用known_hosts检查

Directs ssh to additionally check the host IP address in the known_hosts file.

StrictHostKeyChecking no,跳过known_hosts写入

Specifies if ssh should never automatically add host keys to the ~/.ssh/known_hosts file, and refuses to connect to hosts whose host key has changed.

Host 字段

Host 字段配置了登录别名,这里需要注意的是,Host 是支持通配符的, * 代表 0~n 个非空白字符,? 代表一个非空白字符,! 表示例外通配

HostName 字段

指定远程主机名,可以直接使用 IP 地址。如果这个字段中包含 ‘%h’ ,则实际使用时会被命令行中的主机名替换

User 字段

指定登录用户名

IdentityFile 字段

指定密钥认证使用的私钥文件路径。默认为 ~/.ssh/id_rsa。这个字段可以指定多个密钥文件(以 , 分开),在连接的过程中会依次尝试这些密钥文件。和 HostName 字段一样,值也可以直接指定参数代替:

Port 字段

指定远程主机端口号,默认为 22 。

%h,远程主机名

%p,远程端口

SSH使用密钥登录并禁止口令登录实践 - https://wsgzao.github.io/post/ssh/

玩转 SSH 端口转发 - https://blog.fundebug.com/2017/04/24/ssh-port-forwarding/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12061287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存