在我的电脑中,我设置了一个名为 ~/job/ssh/config 的文件
Host bitbucket
HostName bitbucket.org
IdentityFile ~/job/ssh/rsa_key
user git
IdentitiesOnly yes
并在我的~/.ssh/config
~/.ssh/config
Include /home/pcmagas/job/ssh/config
该文件夹~/job/ssh
有以下设置:
-rw------- 1 pcmagas pcmagas 191 Σεπ 15 10:57 config
-rw------- 1 pcmagas pcmagas 3414 Σεπ 15 10:45 rsa_key
-rw------- 1 pcmagas pcmagas 761 Σεπ 15 10:45 rsa_key.pub
-rw------- 1 pcmagas pcmagas 419 Αυγ 28 15:32 work
-rw------- 1 pcmagas pcmagas 109 Αυγ 28 15:32 work.pub
通过做:
$ ssh bitbucket
PTY allocation request failed on channel 0
authenticated via ssh key.
You can use git to connect to Bitbucket. Shell access is disabled
Connection to bitbucket.org closed.
我也可以:
ssh -i ~/job/ssh/rsa_key [email protected]
PTY allocation request failed on channel 0
authenticated via ssh key.
You can use git to connect to Bitbucket. Shell access is disabled
我可以连接到bithubket。
此外,通过执行以下操作:
GIT_SSH_COMMAND='ssh -i ~/job/ssh/rsa_key -o IdentitiesOnly=yes' git clone [email protected]:exampe/myproj.git
我可以克隆它:
Γίνεται κλωνοποίηση μέσα στο 'myproj'...
remote: Enumerating objects: 210004, done.
fetch-pack: unexpected disconnect while reading sideband packet
但我不能没有变量。任何想法有什么问题吗?
作为一种缓解方法,我还尝试注释 ~/.ssh/config 中的 inclide 行并将这些内容直接放入~/.ssh/config
:
Host bitbucket
HostName bitbucket.org
IdentityFile ~/job/ssh/rsa_key
user git
IdentitiesOnly yes
此外,我也运行了这些命令:
chmod 400 ~/job/ssh/*
chmod +w ~/job/ssh/config
答案1
为了使此设置起作用,请重命名该条目:
Host bitbucket
HostName bitbucket.org
IdentityFile ~/job/ssh/rsa_key
user git
IdentitiesOnly yes
进入:
Host bitbucket.org
HostName bitbucket.org
IdentityFile ~/job/ssh/rsa_key
user git
IdentitiesOnly yes
这将欺骗 ssh-agent 使用位于的密钥~/job/ssh/rsa_key
而不是位于 中的密钥~/.ssh
。
但我有单独的配置文件
如果条目位于以下位置,则这都有效:
- 〜/作业/ssh/配置
- 〜/.ssh
对于第一个工作,您必须放置以下行:
Include /home/pcmagas/job/ssh/config
在~/.ssh/config
。