Ubuntu下ssh使用


Ubuntu下ssh使用

2019年09月27日19:35:34

1 ssh連接配置

LInux的ssh分為客戶端openssh-client和服務器openssh-server。客戶端的ssh程序是用ssh來連接別的電腦的。服務器的ssh程序是讓別的電腦通過ssh鏈接本機的。

並且客戶端openssh-client通常Ubuntu會默認安裝的。

sudo apt install openssh-client #本地主機運行此條,實際上通常是默認安裝client端程序的
sudo apt install openssh-server #在被連接的服務器運行此條命令安裝

2 本地主機的客戶端ssh使用

常用連接方法:使用對方ip、賬戶和密碼直接登錄

一般openssh-clientubuntu默認安裝可以直接使用ssh。

在本地主機上運行以下命令來鏈接遠程服務器,使用默認的22端口的端口:

ssh yucicheung@10.170.11.147
#或
ssh -l yucicheung 10.170.11.147

如果遠程服務器的SSH服務不是使用22端口,那么SSH鏈接時則需要用-p指定端口(如258端口):

ssh -p 258 yucicheung@10.170.11.147
#或
ssh -l yucicheung -p 202 10.170.11.147

注意:ssh指定端口的選項是小寫的p

退出遠程登錄:

用Ctrl+D或者

exit

本地主機與遠程服務器主機互傳文件

注意:

  1. scp指定端口的選項是大寫的P
  2. 以下所有指定都是在本地主機上執行

(1)從遠程服務器主機下載文件

scp username@serverip:/path/filename /local_path

例如:

scp john@192.168.1.100:~/Desktop/a.txt ./Desktop
scp -P 258 john@192.168.1.100:~/Desktop/a.txt ./Desktop

(2)上傳本地文件到服務器

scp /local_path/filename username@serverip:/path

例如,

scp -P 258 test.txt john@192.168.1.100:~/

(3)從服務器下載整個目錄

scp -r username@serverip:/sever_path  /local_path

例如

scp -P 258 -r john@192.168.1.100:~/mhn ./mhn_copy

(4)上傳目錄到服務器

scp -r /local_dir username@serverip:/server_dir

例如,

scp -P 258 -r /Study john@192.168.1.100:~/Study_copy

不需密碼連接方法:利用公鑰省去口令輸入

每次登錄遠程主機都需要輸入密碼是很不便捷的,如果要加速這一步驟,可以利用密鑰對進行連接,主要思路是:生成一對公鑰私鑰,私鑰在local主機上,公鑰在遠程服務器上,每次建立ssh連接自動檢查密鑰對是否匹配。

尤其是對於GitHub這種使用ssh傳輸文件的系統來說,每次輸入賬戶密碼非常不便捷。

(1)step1 生成密鑰對

ssh-keygen -t rsa #-t表示選擇類型,類型為rsa1

執行以后會在$HOME目錄下生成一個.ssh文件夾,其中包含私鑰文件id_rsa和公鑰文件id_rsa.pub

(2)復制公鑰至服務器

# 登錄遠程服務器
ssh yucicheung@10.170.11.147 
# 在服務器上創建.ssh文件夾,如果已經存在就跳過此步
mkdir .ssh 
# 為了保證.ssh文件夾的安全,應取消其他用戶對文件夾的所有權限
chmod 700 .ssh
# 退出登錄
exit
# 本地主機的公鑰復制到遠程服務器,作為已認證密鑰
scp /home/yucicheung/.ssh/id_rsa.pub yucicheung@10.170.44.206:/home/yucicheung/.ssh/authorized_keys

在進行以上配置以后,再進行連接時,就可以免去口令(密碼)的輸入了。

3 遠程主機的服務器ssh使用

在被鏈接主機上安裝ssh

sudo apt-get update
sudo apt install openssh-server #在被連接的電腦上運行此條命令安裝

啟動ssh:

sudo service ssh start

安裝好后查看SSH是否啟動:

sudo ps -e |grep ssh

或者:

sudo netstat -tlp

配置被鏈接主機的ssh

(1)允許遠程ROOT用戶登錄

使用gedit修改配置文件/etc/ssh/sshd_config允許遠程ROOT用戶登錄:

sudo gedit /etc/ssh/sshd_config

# Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes

改為

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

然后重啟ssh服務

sudo /etc/init.d/ssh restart 

sudo service ssh restart

(2)查看端口信息

查看配置文件中/etc/ssh/sshd_config是否開啟了端口(一般默認時22端口,也可以改成其他端口)

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 

查看本機ssh相關的端口:

sudo netstat -nlap|grep sshd|grep tcp|grep LISTEN

當然還有一種情況是端口沒打開(一般沒這這種情況,通過配置文件都可以開啟端口),可以靠udw命令開啟

(3)查看主機ip

ifconfig #查詢ip地址,在返回信息中找到自己的ip地址


免責聲明!

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



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