總結SSH登陸故障:expected key exchange group packet form server
expected key exchange group packet form server 通常會出現在Navicat連線資料庫或者putty/xshell/WinSCP/SecureCRT等遠端終端軟體SSH到linux伺服器是報錯。(直接ssh命令主機是沒有問題的,通過終端就會產生這類error)
前提環境:網路ping、埠、服務、許可權和賬號密碼都正常的。
情況一、Navicat連線不上Linux伺服器上的MySQL。
- )最直接辦法版本問題:更新Navicat到最新版本即可解決
- )1.先進入linux連線資料庫並輸入密碼:
- mysql -uroot -p
2.輸入以下命令進行授權:
- GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '這裡寫自己資料庫的密碼' WITH GRANT OPTION;
3.重新整理許可權:
- FLUSH PRIVILEGES;
4.但是新增了許可權之後,還是連線不上資料庫。必須給伺服器的安全組設定埠放行規則
5.接著就可以正常訪問了。
情況二、putty/xshell/WinSCP/SecureCRT等遠端終端軟體SSH到linux伺服器是報錯
ssh 金鑰登入失敗的問題,困惑了很久
生成的key應該是沒有問題,因為我把生成的公鑰寫到到/root/.ssh/authorized_keys
裡面,然後執行ssh root@xxx
能夠直接登陸。但是換成普通使用者則就出現了問題。現在的情況:/home/test/.ssh
許可權700/home/test/.ssh/authorized_keys
許可權600也執行了chown -R test:test /home/test/.ssh
/etc/ssh/sshd_config
裡面也開啟了登陸認證
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
service sshd restart
也執行過了
/etc/selinux/config
裡面已經是SELINUX=disabled
但是普通使用者就是無法登入。
參看了安全日誌/var/log/secure得到的結果也僅僅是一句:Did not receive identification string from xxx
修改許可權 chmod 644 authorized_keys 把ssh的StrictModes關閉 等操作都無果
問題應該是這樣子的:
1、先在本機A的root使用者下使用ssh-genkey生成了公私鑰對,並將A機器公鑰加入了遠端機器B的root賬戶“.ssh/authorized_keys”中,可以正常從A機器使用root使用者登入機器B。
2、但是同樣在A機器的root使用者下,使用 ssh test@B 命令登入遠端機器B的test使用者時,無法正常登入。
解決辦法: 將A機器的root使用者的公鑰,加入 遠端機器B的test使用者下的“.ssh/authorized_keys” 檔案中,即可實現。
自用安裝測試的一臺伺服器上次yum update到centos 7.4,剛才發現跳轉不過去了,提示:
expected key exchange group packet from server
趕緊登陸伺服器看一下,誒,可以ssh登陸啊。SSH通道換成密碼的形式,也是不行。
看一下SSHD的日誌
journalctl --unit sshd --no-pager
Jan 24 17:51:20 hk sshd[1989]: /etc/ssh/sshd_config line 50: Deprecated option RSAAuthentication
Jan 24 17:51:20 hk systemd[1]: Started OpenSSH server daemon.
Jan 24 17:51:22 hk sshd[1990]: rexec line 50: Deprecated option RSAAuthentication
Jan 24 17:51:22 hk sshd[1990]: error: kex protocol error: type 30 seq 1 [preauth]
嘿,升級了openssh版本了啊,這個配置引數已經是被廢棄掉的
於是我備份一下/etc/ssh/sshd_config檔案便刪掉了50行的RSAAuthentication
重啟再試,嘿,還是不行,現在就剩下這句提示了:
error: kex protocol error: type 30 seq 1 [preauth]
得,試試唄。[終極解決方案]
# Add this to /etc/ssh/sshd_config
KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1
# systemctl restart sshd
OK!成功ssh登陸。。。
原因大概就是
use libssh2, and libssh2 only support diffie-hellman key exchange methods
而且升級libssh2也未能解決,應該是個bug。
【原因導致】
伺服器的sshd服務升級了
putty版本過低,會出現這個報錯資訊,你可以檢查下版本,下個最新版的試試 https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html |
【參考梯子文件】
diffie-hellman-group1-sha1 - CSDN部落格 https://blog.csdn.net/shadow066/article/details/51222577
Putty SSH金鑰登入CentOS7 - CSDN部落格 https://blog.csdn.net/kkaazz/article/details/78808613
相關文章
- SSH key使用總結
- vscode ssh key登入VSCode
- fabirc error authorizing update: error validating ReadSet: readset expected key [Group] /Channel/AppErrorAPP
- SSH安全登陸原理:密碼登陸與公鑰登陸密碼
- linux ssh免登陸Linux
- SSH免密登陸
- Linux配置SSH免密登陸(公私鑰登陸)Linux
- 配置SSH免密碼登陸密碼
- ssh別名登陸小技巧
- Exchange - Add Owner of Distribution Group
- SQL Server中GROUP BY(連結)SQLServer
- SSH 免密登陸 簡單版
- Linux伺服器批量ssh免密登陸Linux伺服器
- docker hub 下載centos配置ssh遠端登陸DockerCentOS
- Ubuntu SSH 使用指定私鑰登陸伺服器Ubuntu伺服器
- 關於SSH免密登陸普通使用者
- 密碼過期引起的ssh無法登陸密碼
- GitLab配置ssh keyGitlab
- SSH 登入失敗:Host key verification failed 的處理方法AI
- ssh方式登入雲伺服器時設定別名登陸伺服器
- 自用ssh命令總結
- ssh的小總結
- Generating a new SSH key and adding it to the SSH-agent
- Mac 下 iTerm2 SSH 免密登陸阿里雲Mac阿里
- ssh設定使用者從指定的IP登陸
- Lost connection to MySQL server at 'reading authorization packet'MySqlServer
- CentOS建立SSH_keyCentOS
- SSH後門分析總結
- 使用Maven整合SSH總結Maven
- root使用者ssh無法登陸到伺服器伺服器
- Linux 伺服器使用 SSH 連線 實現免登陸Linux伺服器
- 思科路由器:開啟telnet和ssh遠端登陸路由器
- ssh直接帶密碼登入Linux,Linux自動密碼登陸利器sshpass密碼Linux
- Vagrant : SSH auth method: private key
- mac本地生成ssh-keyMac
- git配置多個ssh keyGit
- [雪峰磁針石部落格]2018最佳ssh免費登陸工具
- Mac配置騰訊雲伺服器SSH祕鑰免登陸Mac伺服器