이 SSH 구성이 있습니다.
Host git.domain.net
Port 22
Host *.domain.net
Port 2121
Host bastion
HostName nx4201.domain.net
User dummy
Host project_production
HostName nx4242.domain.net
User project
저는 Ubuntu 15.10을 사용하고 있으며 ssh project_production
포트 2121을 사용하여 nx4242.domain.net에 연결하고 있습니다.
이제 Ubuntu 16.04를 새로 설치하고 동일한 구성 파일을 다시 가져왔습니다(개인 Git 저장소에서 버전 제어를 받고 있었습니다).
더 이상 작동하지 않습니다.
$ ssh -vvv project_production
OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g 1 Mar 2016
debug1: Reading configuration data /home/sullivan/.ssh/config
debug1: /home/sullivan/.ssh/config line 12: Applying options for project_production
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "nx4242.domain.net" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to nx4242.domain.net [178.170.104.70] port 22.
보시다시피 이제 ssh는 포트에 연결을 시도 하지만 규칙은 22
신경 쓰지 않습니다 .*.domain.net
각 호스트에 포트를 지정할 수 있다는 것을 알고 있지만 호스트가 많습니다.
지금은 작동하지 않지만 이전 시스템에서는 왜 작동하지 않습니까? 어떻게 고치나요?
참고로 시스템 SSH 구성 파일은 다음과 같습니다.
Host *
# ForwardAgent no
# ForwardX11 no
# ForwardX11Trusted yes
# RhostsRSAAuthentication no
# RSAAuthentication yes
# PasswordAuthentication yes
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials no
# GSSAPIKeyExchange no
# GSSAPITrustDNS no
# BatchMode no
# CheckHostIP yes
# AddressFamily any
# ConnectTimeout 0
# StrictHostKeyChecking ask
# IdentityFile ~/.ssh/identity
# IdentityFile ~/.ssh/id_rsa
# IdentityFile ~/.ssh/id_dsa
# IdentityFile ~/.ssh/id_ecdsa
# IdentityFile ~/.ssh/id_ed25519
# Port 22
# Protocol 2
# Cipher 3des
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
# MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
# EscapeChar ~
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
# ProxyCommand ssh -q -W %h:%p gateway.example.com
# RekeyLimit 1G 1h
SendEnv LANG LC_*
HashKnownHosts yes
GSSAPIAuthentication yes
GSSAPIDelegateCredentials no
SSH 버전:
$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g 1 Mar 2016
답변1
나는 마침내 여기서 답을 찾았습니다.https://superuser.com/a/1024928/650657
간단히 말해서 다음 줄을 추가해야 합니다.
CanonicalizeHostname yes
Host *.mydomain.com
User myusername
Host host1
HostName host1.mydomain.com
이런 방식으로 구성 파일이 다시 구문 분석됩니다.
CanonicalizeHostname
이상한 점은 이전에는 이 옵션을 사용할 필요가 없었다는 것입니다...