OS X: ошибка SSH через Shadowsocks: «ssh_exchange_identification: соединение закрыто удаленным хостом»

360
toom

Я нахожусь в Китае, и соединения SSH замедляются китайским Большим Брандмауэром. Часто бывает так плохо, что использовать ssh просто невозможно. Таким образом, мне нужно туннелировать мой ssh-трафик через теневые чулки, чтобы CGF не мог его обнаружить. Поэтому я добавил следующие строки в мой ~/.ssh/configфайл:

$cat ~/.ssh/config Host ssserver User ubuntu IdentityFile ~/.ssh/id_rsa ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p 

Теперь при запуске ssh -v ssserverя получаю следующее сообщение об ошибке:

$ ssh -v ssserver OpenSSH_7.6p1, LibreSSL 2.6.2 debug1: Reading configuration data /Users/Tom/.ssh/config debug1: /Users/Tom/.ssh/config line 6: Applying options for ssserver debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 20: Applying options for * debug1: /etc/ssh/ssh_config line 102: Applying options for * debug1: Executing proxy command: exec nc -X 5 -x 127.0.0.1:1080 ssserver 22 debug1: identity file /Users/Tom/.ssh/id_rsa type 0 debug1: key_load_public: No such file or directory debug1: identity file /Users/Tom/.ssh/id_rsa-cert type -1 debug1: Local version string SSH-2.0-OpenSSH_7.6 debug1: permanently_drop_suid: 501 ssh_exchange_identification: Connection closed by remote host 

К сожалению, я не эксперт по SSH. Итак, кто-нибудь знает, что это значит и как это исправить. Это бы мне очень помогло. Благодарю.

0

1 ответ на вопрос

0
toom

Я узнал, как исправить проблему. Тем не менее, это фактически оставляет меня с новым вопросом.

Первое решение: по совпадению я обнаружил, что замена имени хоста /etc/hostsименно ssserverс его IP-адреса работает. Итак, я изменил запись в ~/.ssh/configвышеупомянутом:

$cat ~/.ssh/config Host 64.10.18.222 User ubuntu IdentityFile ~/.ssh/id_rsa ProxyCommand nc -x 127.0.0.1:1080 %h %p 

Теперь на консоли мне просто нужно позвонить ssh -v 64.10.18.222и все работает.

В качестве альтернативы полная консольная команда:

ssh -v -i ~/.ssh/your_id_key_file_rsa -o ProxyCommand='nc -x 127.0.0.1:1080 %h %p' ubuntu@64.10.18.222 

Итак, мой новый вопрос: почему IP-адрес работает, а имя хоста, полученное как in, /etc/hostsне работает?

Похожие вопросы