總結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使用總結
- SSH安全登陸原理:密碼登陸與公鑰登陸密碼
- SSH免密登陸
- 使用ssh-keygen,實現免密碼登陸linux密碼Linux
- linux ssh免登陸Linux
- ssh免密碼登陸密碼
- Linux配置SSH免密登陸(公私鑰登陸)Linux
- 配置SSH免密碼登陸密碼
- Linux SSH免密登陸Linux
- Linux SSH 無法登陸Linux
- SSH 自動遠端登陸
- metalink登陸故障解決!
- 用SSH KEY遠端登入
- iOS攻防:ssh登陸與交叉編譯iOS編譯
- [SSH服務]——一個SSH無密碼登陸實驗密碼
- ssh只能遠端登陸到普通使用者,不能以root遠端登陸
- Docker容器學習梳理 - SSH方式登陸容器Docker
- linux 設定ssh無密碼登陸Linux密碼
- fabirc error authorizing update: error validating ReadSet: readset expected key [Group] /Channel/AppErrorAPP
- 密碼過期引起的ssh無法登陸密碼
- Ubuntu SSH 使用指定私鑰登陸伺服器Ubuntu伺服器
- docker hub 下載centos配置ssh遠端登陸DockerCentOS
- Linux伺服器批量ssh免密登陸Linux伺服器
- linux下ssh/scp無金鑰登陸方法Linux
- 開啟SUSE Linux的SSH密碼登陸Linux密碼
- Linux - 配置SSH免密登入 - “ssh-keygen”的基本用法Linux
- SQL Server 首次登陸 Linux 平臺SQLServerLinux
- pymssql登陸本地sql server 伺服器SQLServer伺服器
- 有關10g em登陸的問題總結
- 限制 ssh 從某些 IP 登入( authorized_keys )Zed
- ssh方式登入雲伺服器時設定別名登陸伺服器
- linux 關閉只允許SSH登陸(允許使用者名稱、密碼登陸)Linux密碼
- ssh設定使用者從指定的IP登陸
- ssh登陸 “remote host identification has changed!“ 解決方案REMIDE
- 普通使用者ssh無密碼登陸失敗密碼
- 解決方案: scp/ssh 的登陸提示很慢 (Linux)Linux
- Linux 修改SSH埠 和 禁止Root遠端登陸Linux
- 關於ssh登陸很慢的解決辦法【轉】