ssh+scp基本使用


1 ssh

ssh一般用於連接服務器,可以使用密碼認證與密鑰認證的方式。

1.1 密碼認證

直接使用ssh即可:

ssh username@xxx.xxx.xxx.xxx

username為用戶名,后面為公網ip.
若需要使用特定端口登錄,加上p參數,比如使用12345端口:

ssh -p 12345 username@xxx.xxx.xxx.xxx

1.2 密鑰認證

密鑰認證需要先生成密鑰,然后把公鑰使用scp上傳到服務器,接着修改服務器的ssh配置文件。

1.2.1 生成密鑰

ssh-keygen -t rsa -b 4096 -C "email" -f /xxx/id_rsa

t表示加密算法,b指定位數,C表示注釋,識別這個密鑰,一般用郵箱即可。f表示生成的私鑰文件位置(需要加上文件名),公鑰會放在同一文件夾下。
在這里插入圖片描述

1.2.2 上傳公鑰

使用scp上傳公鑰到服務器,注意是公鑰,ssh-keygen會生成一個公鑰與私鑰,pub結尾的文件就是公鑰,默認叫id_rsa.pub .

scp /xxxx/id_rsa.pub username@xxx.xxx.xxx.xxx:/root/

這里就直接放到服務器上的/root下。

1.2.3 修改ssh配置文件

先使用ssh密碼認證的方式登錄服務器,然后修改/etc/ssh/sshd_config:

cd /etc/ssh
cp sshd_config sshd_config.bak
vim sshd_config

找到PubKeyAuthentication這一行,修改如下:
在這里插入圖片描述
如果需要修改端口的,搜索Port,直接修改:
在這里插入圖片描述
接着重啟sshd服務:

systemctl restart sshd

1.2.4 測試連接

ssh -i /xxx/id_rsa -p port username@xxx.xxx.xxx.xxx

其中i后為私鑰的位置,p參數如果修改了默認的端口(22)則需要加上自定義端口。
如果在windows上生成的私鑰,可能會有如下問題:
在這里插入圖片描述
這里提示私鑰的權限是755,也就是其他用戶可讀,需要修改為600:

chmod 600 /xxx/id_rsa

如果用的是wsl可能會修改失敗,需要加上wsl的配置,修改/etc/wsl.conf(如果沒有就新建)

vim /etc/wsl.conf

輸入:

[automount]
enabled = true
options = "metadata,umask=22,fmask=11"
mountFsTab = false

退出wsl重啟,然后再修改權限,應該就沒問題了。

2 scp

scp是secure copy的縮寫,一般用於從服務器下載文件或上傳文件到服務器,與ssh類似,可以使用密碼認證或密鑰認證或指定端口。

2.1 上傳文件(夾)到服務器

scp localFile username@xxx.xxx.xxx.xxx:/xxxx
scp -r localDir username@xxx.xxx.xxx.xxx:/xxx

上面是密碼認證的方式,密鑰認證請加上i參數,指定私鑰位置:

scp localFile username@xxx.xxx.xxx.xxx:/xxx
scp -i /xxx/id_rsa -r localDir username@xxx.xxx.xxx.xxx:/xxxx

需要特定端口請加上P參數(注意是大寫,不是ssh的小寫p端口參數)

scp -i /xxx/id_rsa -P xx localFile username@xxx.xxx.xxx.xxx

2.2 從服務器下載文件(夾)

scp username@xxx.xxx.xxx.xxx:/xxx   /localDir
scp -r username@xxx.xxx.xxx:/xxx  /localDir

第一個是下載文件,第二個是下載文件夾,需要加上r參數。
同理,密鑰認證加i參數,端口加P參數:

scp -i /xxx/id_rsa -P xx username@xxx.xxx.xxx.xxx:/xxx  /localDir
scp -i /xxx/id_rsa -P xx -r username@xxx.xxx.xxx.xxx:/xxx  /localDir


免責聲明!

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



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