Как следует из названия, это архив cpio
. Он был заархивирован. Итак,
zcat file | cpio -vt
даст вам содержание.
Вы не можете переопределить пользователя, указанного в командной строке. Указывайте значение по умолчанию только тогда, когда ничего не указано (если в вашем ~ / .ssh / config не указано значение по умолчанию, будет использоваться ваш логин, возвращенный whoami
). Таким образом, он будет работать по желанию, если вы используете: ssh -Tv github.com
Обратите внимание, что вы можете установить для Host любое значение, а не только то, которое соответствует фактическому имени хоста, например:
Host gh
Hostname gh
User git
Затем вы можно использовать ssh -Tv gh
.
% r
и % h
в IdentityFile (~/.ssh/%r@%h_id_rsa) всегда будут такими же, как удаленный пользователь и удаленный хост, используемые для аутентифицировать.
В этом примере я изменил Имя хоста
Host github.com bitbucket.org bitbucket.com
IdentityFile ~/.ssh/%r@%h_id_rsa
Hostname newhostname.com
Тест
$ ssh -Tv tarranjones@github.com
Результат
debug1: Authenticating to github.com:22 as 'tarranjones'
debug1: Offering RSA public key: ~/.ssh/tarranjones@newhostname.com_id_rsa
В этом примере я изменил Пользователь
Host github.com bitbucket.org bitbucket.com
IdentityFile ~/.ssh/%r@%h_id_rsa
User git
Тест
$ ssh -Tv tarranjones@github.com
Теперь имя удаленного хоста не изменится но если бы он изменился, это просто означало бы, что соответствующее имя IdentityFile было бы неправильным.
debug1: Authenticating to github.com:22 as 'git'
debug1: Offering RSA public key: ~/.ssh/git@github.com_id_rsa
Использование percent_expand
для имени удаленного хоста % h
не будет работать для присвоения имени файлу идентификации. Это всегда нужно будет жестко запрограммировать, если вы хотите, чтобы оно отличалось от имени удаленного хоста, используемого для аутентификации.
Лучшее, что я мог придумать, это вот что.
#Set Git User Domains
Host *-github.com *-bitbucket.org *-bitbucket.com
User git
#IdentityFile
Host tarranjones-*
IdentityFile ~/.ssh/tarranjones@%h_id_rsa
Host otherusername-*
IdentityFile ~/.ssh/otherusername@%h_id_rsa
#Hostnames
Host *-github.com
Hostname github.com
Host *-bitbucket.com *-bitbucket.org
Hostname bitbucket.org
Host *
Protocol 2
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes
Использование
$ ssh -Tv tarranjones-github.com
Результат
debug1: Authenticating to github.com:22 as 'git'
debug1: Offering RSA public key: ~/.ssh/tarranjones@github.com_id_rsa
Хост *
также можно удалить:
IdentityFile %d/.ssh/%r@%h_id_rsa
Protocol 2
UseKeychain yes
AddKeysToAgent yes
IdentitiesOnly yes
Host github.com bitbucket.org bitbucket.com
User git
Не указывайте имя пользователя в командной строке, так как это переопределит имя пользователя в конфигурации.