原始的登录方式

上一期结尾已经介绍了使用私钥进行登录, 但是需要输入的东西着实有点多, 而且每次其实 是一样的.

1
~ ❤  ssh root@1.2.3.4 -i ~/.ssh/id_rsa_test

添加~/.ssh/config文件

1
2
3
4
5
6
7
8
9
~ ❤  cat ~/.ssh/config
#ForwardAgent yes
#ForwardX11 yes

Host ali # 命令名称
User root
HostName 1.2.3.4
Port 22
IdentityFile ~/.ssh/id_rsa_test

本地通过构建这个文件, 你可以将一长串的ssh命令转换为一条语句:

1
~ ❤  ssh ali

本期只介绍基本的使用, 如果想要更深一步, 请查看文档.

附: 一些常用的配置

下面几个是一些仓库的配置文件, 你可以拷贝过去使用, 但是请记得将秘钥文件地址更换 为自己的地址.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## gist.github.com 配置
Host gist.github.com
User git
HostName gist.github.com
IdentityFile ~/.ssh/id_rsa_test

## Github配置
Host github.com
User git
HostName github.com
IdentityFile ~/.ssh/id_rsa_test

## Gitlab配置
Host gitlab.com
User git
HostName gitlab.com
IdentityFile ~/.ssh/id_rsa_test

## bitbucket配置
Host bitbucket.org
User git
HostName bitbucket.org
IdentityFile ~/.ssh/id_rsa_test

以Github为例, 通常我这样进行测试:

1
2
~ ❤  ssh -T git@github.com
Hi corvofeng! You've successfully authenticated, but GitHub does not provide shell access.

希望看到配置文件的读取详情, 请使用-vvv参数, 基本就可以定位到问题.

附: ssh连接时每次都询问密码怎么办

1
2
~ ❤  ssh ali
Enter passphrase for key '/home/corvo/.ssh/id_rsa_x1c':

这种情况我一般在服务器中连接机器遇到的多一点, 也就是没有图形化界面时

推荐的做法是, 在配置为文件(~/.ssh/config)中增加这么一句话:

1
2
3
4
5
6
7
8
9
# 由ssh自动启动agent
AddKeysToAgent yes

## bitbucket配置
Host bitbucket.org
User git
HostName bitbucket.org
IdentityFile ~/.ssh/id_rsa_test
# ...

参考了https://stackoverflow.com/a/40333362