問題描述:
在Mac OS 系統(tǒng)中,當(dāng)我們使用Terminal通過ssh去連接一個(gè)遠(yuǎn)程主機(jī)沼沈,可能會(huì)遇到以下報(bào)錯(cuò):
JUNLI5-M-R24U:~ junli$ ssh admin@10.75.169.43
Unable to negotiate with 10.75.169.43 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
解決方案
Terminal找不到支持的密鑰交換方法列另,因?yàn)樾掳鍻penssh中認(rèn)為SHA1這種hash散列算法過于薄弱,已經(jīng)不再支持摊滔,所以我們需要手動(dòng)去enable對(duì)于SHA1的支持:
JUNLI5-M-R24U:ssh junli$ vim /etc/ssh/ssh_config
取消注釋這一行內(nèi)容: MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160
并且在文件結(jié)尾添加:
HostkeyAlgorithms ssh-dss,ssh-rsa
KexAlgorithms +diffie-hellman-group1-sha1
編輯后/etc/ssh/ssh_config
完整的文件內(nèi)容如下:
# $OpenBSD: ssh_config,v 1.30 2016/02/20 23:06:23 sobrado Exp $
# This is the ssh client system-wide configuration file. See
# ssh_config(5) for more information. This file provides defaults for
# users, and the values can be changed in per-user configuration files
# or on the command line.
# Configuration data is parsed as follows:
# 1. command line options
# 2. user-specific file
# 3. system-wide file
# Any configuration value is only changed the first time it is set.
# Thus, host-specific definitions should be at the beginning of the
# configuration file, and defaults at the end.
# Site-wide defaults for some commonly used options. For a comprehensive
# list of available options, their meanings and defaults, please see the
# ssh_config(5) man page.
# Host *
# ForwardAgent no
# ForwardX11 no
# RhostsRSAAuthentication no
# RSAAuthentication yes
# PasswordAuthentication yes
# HostbasedAuthentication no
# GSSAPIAuthentication no
# GSSAPIDelegateCredentials 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,umac-64@openssh.com,hmac-ripemd160
# EscapeChar ~
# Tunnel no
# TunnelDevice any:any
# PermitLocalCommand no
# VisualHostKey no
# ProxyCommand ssh -q -W %h:%p gateway.example.com
# RekeyLimit 1G 1h
HostkeyAlgorithms ssh-dss,ssh-rsa
KexAlgorithms +diffie-hellman-group1-sha1
配置完無需重啟呻袭。