使用ssh客戶端遠程登錄到指定的計算機:python
$ ssh {user}@{remote} -o IdentityFile=/home/id_rsa -o StrictHostKeyChecking=no user:遠程機器上的用戶名,若是不指定的話默認爲當前用戶; remote:遠程機器的地址,能夠是 IP/域名,或者是 後面會提到的別名; port:ssh Server **的端口,SSH服務器默認端口號是 22,不指定則使用默認端口號。
在工做中,SSH服務器的端口號頗有可能不是22,若是遇到這種狀況就須要使用 -p 選項,指定正確的端口號,不然沒法正常鏈接到服務器。linux
ssh無密碼登錄要使用公鑰和私鑰。linux下能夠用ssh-keygen生成公鑰/私鑰對。算法
$ ssh-keygen -t rsa -P ''
直接ssh-keygen而後三次回車就能夠了。會在/home/root(用戶) 下生成.ssh目錄,.ssh下有id_rsa和id_rsa.pub。
-P表示密碼;-P '':表示空密碼,這種狀況能夠不使用-P參數。windows
把客戶端機器生成的id_rsa.pub公鑰複製到服務器的 /home/root(用戶)/.ssh/authorized_keys文件中。centos
$ scp .ssh/id_rsa.pub hqs@192.168.2.77:/home/hqs/.ssh/id_rsa.pub # 把複製的id_rsa.pub添加到.ssh/authorized_keys文件 $ cat id_rsa.pub >> .ssh/authorized_keys $ chmod 600 .ssh/authorized_keys # authorized_keys的權限要爲600
使用 公鑰 加密的數據,須要使用 私鑰 解密;
使用 私鑰 加密的數據,須要使用 公鑰 解密。服務器
執行 ssh-copy-id -p port user@remotessh
配置別名可讓咱們進一步偷懶,好比:ssh centos來替代上面這一長串命令,在客戶端計算機 ~/.ssh/config 裏面追加一下內容:ide
Host centos
HostName 服務器ip地址
User python
Port 22
保存後,可使用ssh centos實現遠程登錄,scp一樣可使用。工具
$ ssh {user}@remoteaddr -o IdentityFile=/home/{user}/.ssh/id_rsa -o StrictHostKeyChecking=no
scp 就是 secure copy,是一個 Linux 下用來進行 遠程拷貝文件 的命令。既能夠將本地內容拷貝到遠程計算機,也能夠將遠程計算機內容拷貝到本地。加密
$ scp 用戶名@ip:文件名或路徑 用戶名@ip:文件名或路徑 -r:若給出的源文件是目錄文件,則scp將遞歸複製該目錄下的全部子目錄和文件,目標文件必須爲一個目錄名; -P:若遠程SSH服務器的端口不是22,須要使用大寫字母 -P 選項指定端口。 -i identity_file: 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。 # 把本地當前目錄下的 01.py 文件 複製到 遠程 家目錄下的 Desktop/01.py $ scp -P port 01.py user@remote:Desktop/01.py # 把遠程 家目錄下的 Desktop/01.py 文件 複製到 本地當前目錄下的 01.py $ scp -P port user@remote:Desktop/01.py 01.py # 把當前目錄下的 demo 文件夾 複製到 遠程 家目錄下的 Desktop $ scp -r demo user@remote:Desktop # 把遠程 家目錄下的 Desktop 複製到 當前目錄下的 demo 文件夾 $ scp -r user@remote:Desktop demo # 指定RSA祕鑰 # 下載數據 $ scp -i ~/.ssh/id_rsa -r root@remote_ip:/data/www/develop/develop_activity_task /data/www/activity_task_bak # 上傳數據 $ [root@localhost fsp]# scp -i /home/id_rsa patch.zip fsp@172.28.0.2:/home/fsp/ Authorized users only. All activities may be monitored and reported. patch.zip
注意:
scp 這個終端命令只能在 Linux 或者 UNIX 系統下使用;
若是在windows系統中,能夠安裝putty,使用pscp命令行工具或者安裝FileZilla使用FTP進行文件傳輸。