Recentemente, o OpenSSH no macOS Sierra foi atualizado para 7.3p1, o que significa que a Include
diretiva de configuração está disponível , viva!
No entanto, estou tendo problemas para usá-lo.
Eu tenho o seguinte ~/.ssh/config
:
Host github.com
Hostname github.com
User git
IdentityFile ~/.ssh/keys/github_rsa
Host den
HostName narzt-desktop.local
User camden
GSSAPIAuthentication no
AddressFamily inet
Host walle
User CamdenNarzt
HostName WALLE.local
AddressFamily inet
GSSAPIAuthentication no
Include ~/.ssh/config.d/*
Eu vi aqui que pode haver alguma saída de depuração útil se eu adicionar vários -v
sinalizadores aos meus comandos ssh, mas quando testo a configuração de um host em um dos arquivos incluídos, recebo o seguinte:
$ \ssh -vvvvG git-codecommit.us-east-1.amazonaws.com
OpenSSH_7.3p1, LibreSSL 2.4.1
debug1: Reading configuration data /Users/camdennarzt/.ssh/config
debug3: /Users/camdennarzt/.ssh/config line 31: Including file /Users/camdennarzt/.ssh/config.d/family.conf depth 0 (parse only)
debug1: Reading configuration data /Users/camdennarzt/.ssh/config.d/family.conf
debug3: /Users/camdennarzt/.ssh/config line 31: Including file /Users/camdennarzt/.ssh/config.d/icloud.conf depth 0 (parse only)
debug1: Reading configuration data /Users/camdennarzt/.ssh/config.d/icloud.conf
debug3: /Users/camdennarzt/.ssh/config line 31: Including file /Users/camdennarzt/.ssh/config.d/metabolistics.conf depth 0 (parse only)
debug1: Reading configuration data /Users/camdennarzt/.ssh/config.d/metabolistics.conf
debug3: /Users/camdennarzt/.ssh/config line 31: Including file /Users/camdennarzt/.ssh/config.d/scanimetrics.conf depth 0 (parse only)
debug1: Reading configuration data /Users/camdennarzt/.ssh/config.d/scanimetrics.conf
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 20: Applying options for *
debug1: /etc/ssh/ssh_config line 56: Applying options for *
user camdennarzt
hostname git-codecommit.us-east-1.amazonaws.com
port 22
addressfamily any
batchmode no
canonicalizefallbacklocal yes
canonicalizehostname false
challengeresponseauthentication yes
checkhostip yes
compression no
controlmaster false
enablesshkeysign no
clearallforwardings no
exitonforwardfailure no
fingerprinthash SHA256
forwardagent no
forwardx11 no
forwardx11trusted no
gatewayports no
gssapiauthentication no
gssapidelegatecredentials no
hashknownhosts no
hostbasedauthentication no
identitiesonly no
kbdinteractiveauthentication yes
nohostauthenticationforlocalhost no
passwordauthentication yes
permitlocalcommand no
protocol 2
proxyusefdpass no
pubkeyauthentication yes
requesttty auto
rhostsrsaauthentication no
rsaauthentication yes
streamlocalbindunlink no
stricthostkeychecking ask
tcpkeepalive yes
tunnel false
useprivilegedport no
verifyhostkeydns false
visualhostkey no
updatehostkeys false
canonicalizemaxdots 1
compressionlevel 6
connectionattempts 1
forwardx11timeout 1200
numberofpasswordprompts 3
serveralivecountmax 3
serveraliveinterval 0
ciphers [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc
hostkeyalgorithms [email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
hostbasedkeytypes [email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
kexalgorithms [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1
loglevel DEBUG3
macs [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
pubkeyacceptedkeytypes [email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
xauthlocation /opt/X11/bin/xauth
identityfile ~/.ssh/id_rsa
identityfile ~/.ssh/id_dsa
identityfile ~/.ssh/id_ecdsa
identityfile ~/.ssh/id_ed25519
canonicaldomains
globalknownhostsfile /etc/ssh/ssh_known_hosts /etc/ssh/ssh_known_hosts2
userknownhostsfile ~/.ssh/known_hosts ~/.ssh/known_hosts2
sendenv LANG
sendenv LC_*
connecttimeout none
tunneldevice any:any
controlpersist no
escapechar ~
ipqos lowdelay throughput
rekeylimit 0 0
streamlocalbindmask 0177
(Ignore os números de linha no primeiro bit, excluí alguns comentários para economizar espaço na pergunta) O usuário deve ser o usuário especificado no ~/.ssh/config.d/metabolistics.conf
arquivo e o arquivo de identidade também deve ser o especificado no arquivo de configuração incluído. Não consigo postar o conteúdo do ~/.ssh/config.d/metabolistics.conf
arquivo, mas seu formato é exatamente o mesmo que o ~/.ssh/config
arquivo principal, mas sem nenhuma inclusão adicional.
Eu verifiquei as permissões e elas parecem boas para mim:
$ ls -lhRa ~/.ssh/config*
-rw------- 1 camdennarzt staff 541B 1 Jan 14:22 /Users/camdennarzt/.ssh/config
/Users/camdennarzt/.ssh/config.d:
total 32
drwxr-xr-x 6 camdennarzt staff 204B 1 Jan 14:37 .
drwx------ 9 camdennarzt staff 306B 1 Jan 14:22 ..
-rw------- 1 camdennarzt staff 260B 1 Jan 14:16 family.conf
-rw------- 1 camdennarzt staff 303B 1 Jan 14:17 icloud.conf
-rw------- 1 camdennarzt staff 524B 1 Jan 14:15 metabolistics.conf
-rw------- 1 camdennarzt staff 1.6K 1 Jan 14:15 scanimetrics.conf
Include
directiva deve ir para o topo doconfig
arquivo (antes do "corpo" feito deHost
blocos)na verdade não. É um bug de curto-circuito no uso do sinalizador SSHCONF_NEVERMATCH. Estou trabalhando em diffs para consertar a bagunça. Inclui deve poder ir a qualquer lugar (e também ser recursivo), seja o corpo principal ou dentro de um bloco Host | Match. A única parte complicada é saber quando você desenrolou a pilha de read_config_file_depth () e pode retomar o processamento do Host | Match novamente.
Estarei postando em minha filial quando tiver algo.
fonte
Você pode deixar a
Include
instrução no final do arquivo se a precederMatch all
. Isso encerra o Host / Correspondência anterior e, sempre, inclui sempre o (s) arquivo (s). Portanto, o arquivo terminaria com:fonte
#
ou as linhas vazias contam como comentários; você não pode colocar um comentário na mesma linha queMatch
ouHost
.