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 用戶名
之后再使用服務器時,可以直接使用別名myserver1、myserver2。
密鑰登錄
創建密鑰:
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:
