- 증상
애플 macOS High Sierra 버전으로 업그레이드 후, 아래와 같은 에러가 나며 네트워크 스위치나 방화벽을 접속할 수 없다.Unable to negotiate with 192.168.1.1 port 22: no matching host key type found. Their offer: ssh-dss
Unable to negotiate with 192.168.1.2 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
- 해결책 1
시스템 전체에 적용되는 해결책이다.Vi와 같은 텍스트 에디터를 이용해 /etc/ssh 디렉토리에 있는 ssh_config 파일을 연다.
sudo vi /etc/ssh/ssh_config
아래와 같이 라인을 찾아 맨 앞에 있는 # (Hash/Pound)을 제거한다.
# MACs hmac-md5,hmac-sha1,[email protected],hmac-ripemd160
# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
그리고 맨 아래에 아래와 같은 라인을 추가한다.
HostkeyAlgorithms ssh-dss,ssh-rsa
KexAlgorithms +diffie-hellman-group1-sha1
전체적으로 아래와 같이 될 것이다.
# Port 22
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
MACs hmac-md5,hmac-sha1,[email protected]
# EscapeChar ~
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
# ProxyCommand ssh -q -W %h:%p gateway.example.com
# RekeyLimit 1G 1h
Host *
SendEnv LANG LC_*
HostkeyAlgorithms ssh-dss,ssh-rsa
KexAlgorithms +diffie-hellman-group1-sha1
저장하고 나가면 바로 적용이 된다. 리부팅이 필요없다.
특정 사용자나 호스트, 서브넷 별로 설정할 수 있는 해결책이다.
Vi와 같은 텍스트 에디터를 이용해 .ssh 디렉토리에 있는 config 파일을 연다.
Vi ~/.ssh/config
~/.ssh/config 혹은 $HOME/.ssh/config
ServerAliveInterval 300
ServerAliveCountMax 3
Host 192.168.1.100
RemoteForward 52698 127.0.0.1:52698
# 192.168.1.0 네트워크의 모든 호스트에 아래 알고리즘 허용
Host 192.168.1.*
HostKeyAlgorithms=+ssh-dss
# 아래 2개의 호스트만 암호화 허용
Host 192.168.2.1, 192.168.2.2
Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
# 아래 1개의 서브넷과 1개 호스트만 암호화, 알고리즘 허용
Host 192.168.3.0.*, 192.168.4.100
HostKeyAlgorithms=+ssh-dss
Ciphers 3des-cbc
KexAlgorithms +diffie-hellman-group1-sha1
* 참고: SSH Config File - Commonly used configuration options
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
MACs hmac-md5,hmac-sha1,[email protected]
# EscapeChar ~
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
# ProxyCommand ssh -q -W %h:%p gateway.example.com
# RekeyLimit 1G 1h
Host *
SendEnv LANG LC_*
HostkeyAlgorithms ssh-dss,ssh-rsa
KexAlgorithms +diffie-hellman-group1-sha1
저장하고 나가면 바로 적용이 된다. 리부팅이 필요없다.
- 해결책 2
특정 사용자나 호스트, 서브넷 별로 설정할 수 있는 해결책이다.Vi와 같은 텍스트 에디터를 이용해 .ssh 디렉토리에 있는 config 파일을 연다.
Vi ~/.ssh/config
~/.ssh/config 혹은 $HOME/.ssh/config
ServerAliveInterval 300
ServerAliveCountMax 3
Host 192.168.1.100
RemoteForward 52698 127.0.0.1:52698
# 192.168.1.0 네트워크의 모든 호스트에 아래 알고리즘 허용
Host 192.168.1.*
HostKeyAlgorithms=+ssh-dss
# 아래 2개의 호스트만 암호화 허용
Host 192.168.2.1, 192.168.2.2
Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
# 아래 1개의 서브넷과 1개 호스트만 암호화, 알고리즘 허용
Host 192.168.3.0.*, 192.168.4.100
HostKeyAlgorithms=+ssh-dss
Ciphers 3des-cbc
KexAlgorithms +diffie-hellman-group1-sha1
* 참고: SSH Config File - Commonly used configuration options
No comments:
Post a Comment