在做機器人項目的時候,用的是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:~#
