SSH登錄與SCP傳文件


SSH登錄

遠程登錄服務器:

ssh user@hostname
  • user: 用戶名

  • hostname: IP地址或域名
    第一次登錄時會提示:

The authenticity of host '123.57.47.211 (123.57.47.211)' can't be established.
ECDSA key fingerprint is SHA256:iy237yysfCe013/l+kpDGfEG9xxHxm0dnxnAbJTPpG8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

表示第一次見到該服務器,以后不會顯示,輸入yes,然后回車即可。
這樣會將該服務器的信息記錄在~/.ssh/known_hosts文件中。

然后輸入密碼即可登錄到遠程服務器中。

退出:exit或者ctrl+b

默認登錄端口號為22。如果想登錄某一特定端口:

ssh user@hostname -p 22

配置文件

本機創建文件 ~/.ssh/config

然后在文件中輸入:

Host myserver1
    HostName IP地址或域名
    User 用戶名
    Port 端口號

Host myserver2
    HostName IP地址或域名
    User 用戶名

之后再使用服務器時,可以直接使用別名myserver1myserver2

密鑰登錄

創建密鑰:

ssh-keygen
然后一直回車即可。

執行結束后,~/.ssh/目錄下會多兩個文件:

id_rsa:私鑰
id_rsa.pub:公鑰
之后想免密碼登錄哪個服務器,就將公鑰傳給哪個服務器即可。

例如,想免密登錄myserver服務器。則將公鑰中的內容,復制到myserver中的~/.ssh/authorized_keys文件里即可。

也可以使用如下命令一鍵添加公鑰

ssh-copy-id myserver

注意可以加端口號,比如,docker鏡像服務器的時候需要加 -p 20000

執行命令

命令格式:

ssh user@hostname command

例如:

ssh user@hostname ls -a

或者(推薦)

# 單引號中的$i可以求值
ssh myserver 'for ((i = 0; i < 10; i ++ )) do echo $i; done'

或者

# 雙引號中的$i不可以求值,即i不會被解析
ssh myserver "for ((i = 0; i < 10; i ++ )) do echo $i; done"

scp傳文件

基本用法

命令格式:

scp source destination

將source路徑下的文件復制到destination中

一次復制多個文件:

scp source1 source2 destination

復制文件夾:

scp -r ~/tmp myserver:/home/sdz/

將本地家目錄中的tmp文件夾復制到myserver服務器中的/home/sdz/目錄下。

scp -r ~/tmp myserver:homework/

將本地家目錄中的tmp文件夾復制到myserver服務器中的~/homework/目錄下。

scp -r myserver:homework .

將myserver服務器中的~/homework/文件夾復制到本地的當前路徑下。

指定服務器的端口號:

scp -P 22 source1 source2 destination

注意: scp的-r -P等參數盡量加在source和destination之前。

使用scp配置其他服務器的vim和tmux

scp ~/.vimrc ~/.tmux.conf myserver:


免責聲明!

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



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