openSSH

土里的豆是土豆發表於2024-04-18

本文致力於合併收納遇到的openSSH問題。

no matching key exchange method found.

報錯會有後續內容提示比如:Their offer:diffie-hellman-group-exchange-sha1
原因:源主機金鑰使用的演算法過老如diffie-hellman-group-exchange-sha1,目的主機的openssh版本過高要求的金鑰演算法更高階。
解決方法:

  1. 升級源主機金鑰。

  2. 源主機更新連結命令。

    1. ssh時指定:ssh -oKexAlgorithms=+diffie-hellman-group-exchange-sha1 ansuer@dest_vm
    2. 在連結配置中註解。
    echo -e "Host dest_ip
       User ansuer
       oKexAlgorithms +diffie-hellman-group-exchange-sha1" | sudo tee -a ~/.ssh/config
     
    
  3. 目的主機openssh放行。

    echo "KexAlgorithms +diffie-hellman-group-exchange-sha1" | sudo tee -a /etc/ssh/sshd_config
    systemctl restart sshd
    

Permission denied (publickey,gssapi-with-mic)

部分系統不支援rsa演算法,我在mac上遇到。
解決方法:
~/.ssh/config新增配置

Host *
     HostkeyAlgorithms +ssh-rsa
     PubkeyAcceptedAlgorithms +ssh-rsa

refused local port forward originator

使用VSCode遠端開發時一直提示正在遠端登入,無法正常獲取到遠端主機目錄。

原因:

埠轉發引數:AllowTcpForwardingAllowAgentForwarding
上述被設定為no即禁止了埠轉發,可在systemctl status sshdjournalctl -u sshd看到如題報錯。

解決方法:

修改相關引數值為yes,並systemctl restart sshd

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo sed -i -e '/^UseDNS.*no$/ s/no/yes/' -e '/^PermitRootLogin.*no$/ s/no/yes/' /etc/ssh/sshd_config
sudo systemctl restart sshd

相關文章