關於Ubuntu遠程ssh連接失敗的問題


在做機器人項目的時候,用的是Ubuntu的linux,跟之前的CentOS的操作命令有一點差別,就比如防火牆的名字,在Ubuntu系統中叫什么ufw,真是有點不好接受。

為了能模擬環境,我又弄了一台電腦,但是老在兩個電腦之間切換很費勁。於是想利用PieTTY這個軟件進行遠程的SSH連接。但是怎么都連接不上,老是denied。兩個OS能相互的ping通,防火牆什么的都關閉了,怎么還能連不上呢?於是Google了一下。


 首先我的這台機器是已經關閉了防火牆,甚至直接卸載了防火牆的:

ufw disable
apt-get remove iptables

 

網上有很多介紹在Ubuntu下開啟SSH服務的文章,但大多數介紹的方法測試后都不太理想,均不能實現遠程登錄到Ubuntu上,最后分析原因是都沒有真正開啟ssh-server服務。最終成功的方法如下:

sudo apt-get install openssh-server

Ubuntu缺省安裝了openssh-client,所以在這里就不安裝了,如果你的系統沒有安裝的話,再用apt-get安裝上即可。

然后確認sshserver是否啟動了:

ps -ef | grep ssh

如果只有ssh-agent那ssh-server還沒有啟動,需要/etc/init.d/ssh start,如果看到sshd那說明ssh-server已經啟動了。

ssh-server配置文件位於/ etc/ssh/sshd_config,在這里可以定義SSH的服務端口,默認端口是22,你可以自己定義成其他端口號,如222。然后重啟SSH服務:

如果ssh-server沒有啟動成功,那么可以重啟系統,這樣ssh的服務器就打開了。


在實際的使用中還發生一些例外,那就是利用其它的user是可以登陸ssh的,但是利用root用戶不能登陸ssh,問題的原因就是ssh的配置出現了問題,需要額外的配置一下ssh的服務器。

1.Ubuntu的root用戶默認是沒有密碼的,所以要為root用戶增加新的密碼,或者修改root密碼:

sudo passwd root

2.切換到root用戶,修改 /etc/ssh/sshd_config:

xxx@ubuntu14:~$ su - root
Password:
root@ubuntu14:~# vi /etc/ssh/sshd_config

3.注釋掉 #PermitRootLogin without-password,添加 PermitRootLogin ye

# Authentication:
LoginGraceTime 120
#PermitRootLogin without-password
PermitRootLogin yes
StrictModes yes

4.重啟 ssh  服務

root@ubuntu14:~# sudo service ssh restart
ssh stop/waiting
ssh start/running, process 1499
root@ubuntu14:~#

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM