ssh登录——scp传文件
生活随笔
收集整理的這篇文章主要介紹了
ssh登录——scp传文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、ssh登錄
1.基本用法
遠程登錄服務器:
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文件中。
然后輸入密碼即可登錄到遠程服務器中。
說明:
默認登錄端口號為22。如果想登錄某一特定端口:ssh user@hostname -p 222.配置文件
創建文件 ~/.ssh/config #注意文件名只能是config然后在文件中輸入:
Host myserver1HostName IP地址或域名User 用戶名Host myserver2HostName IP地址或域名User 用戶名之后再使用服務器時,可以直接使用別名myserver1、myserver2。
3.密鑰登錄
創建密鑰
ssh-keygen然后一直回車即可。
執行結束后,~/.ssh/目錄下會多兩個文件:
id_rsa:私鑰 id_rsa.pub:公鑰之后想免密碼登錄哪個服務器,就將公鑰傳給哪個服務器即可。
例如,想免密登錄myserver服務器。則將公鑰中的內容,復制到myserver中的~/.ssh/authorized_keys文件里即可。
也可以在~目錄下直接使用如下命令一鍵添加公鑰:
ssh-copy-id myserver4.執行命令
#命令格式:ssh user@hostname command #例如:ssh user@hostname ls -a #或者# 單引號中的$i可以求值 ssh myserver 'for ((i = 0; i < 10; i ++ )) do echo $i; done' #或者# 雙引號中的$i不可以求值 ssh myserver "for ((i = 0; i < 10; i ++ )) do echo $i; done"二、scp傳文件(本地端和服務器端相互傳文件的命令)
命令格式:
#將source路徑下的文件復制到destination中 scp source destination#一次復制多個文件: scp source1 source2 destination####復制文件夾:scp -r ~/tmp myserver:/home/acs/ #-r必須加到前面 #將本地家目錄中的tmp文件夾復制到myserver服務器中的/home/acs/目錄下。scp -r ~/tmp myserver:homework/ #將本地家目錄中的tmp文件夾復制到myserver服務器中的~/homework/目錄下。scp -r myserver:homework . #將myserver服務器中的~/homework/文件夾復制到本地的當前路徑下。####指定服務器的端口號:scp -P 22 source1 source2 destination #22可以改為任何端口號?使用scp配置其他服務器的vim和tmux
scp ~/.vimrc ~/.tmux.conf myserver:三、homework
1.homework_0
創建好作業后,先進入文件夾/home/acs/homework/lesson_4/,然后: (0) 進入homework_0文件夾,要求:[1] 該文件夾內容為空[2] 配置服務器賬號的密鑰登陸方式。服務器信息可以通過如下命令獲得:homework 4 getinfo將服務器賬號的名稱(Host)配置成:myserver #具體步驟#在~目錄下,進入.ssh/文件 cd .ssh/#用vim創建一個config文件,文件名只能是config vim config#在config文件輸入: Host myserver #myserver表示以后登錄的名稱,以后登錄該服務器可以直接 ssh myserverHostName IP地址或域名User 用戶名#然后在~目錄下執行命令 ssh-keygen#然后一直回車即可 #回車完, .ssh文件下會多兩個文件 id_rsa id_rsa.pub#回到~目錄下,執行命令 ssh-copy-id myserver#下面會輸入密碼 輸入正確密碼,免密登錄就配置完成了#以后登錄到該賬號就可以直接 ssh myserver # Ctrl + d 可以退出該賬號2.homework_1
(1) 進入homework_1文件夾,下列描述中的“本地”均表示當前文件夾。要求:[1] 在myserver服務器上創建并清空文件夾:~/homework/lesson_4/homework_1/[2] 將本地的main.cpp文件上傳到myserver中的~/homework/lesson_4/homework_1/目錄中。[3] 在本地創建文件夾dir。[4] 將myserver中的/etc/lsb-release文件復制到dir中。 #可以開兩個窗口,左邊本地端,右邊myserver端 #在myserver端進行如下命令 -p的意思是如果沒有該文件夾,直接創建,并且順序創建 mkdir homework/lesson_4/homework_1 -p#在本地端進入homework/lesson_4/homework_1中 scp main.cpp myserver:homework/lesson_4/homework_1#在本地端創建dirscp myserver:/etc/lsb-release dir3.homework_2
(2) 進入homework_2文件夾,下列描述中的“本地”均表示當前文件夾,要求:[1] 在myserver服務器上創建并清空文件夾:~/homework/lesson_4/homework_2/[2] 將本地的dir文件夾上傳到myserver中的~/homework/lesson_4/homework_2/目錄中。 #在服務器端創建文件夾 mkdir homework/lesson_4/homework_2 -p #-p可以直接創建文件夾,即使沒有該文件夾#在本地端的homework_4中 scp -r dir myserver:homework/lesson_4/homework_2 # -r必須加前面,-r是傳文件夾4.homework_3
(3) 進入homework_3文件夾,下列描述中的“本地”均表示當前文件夾,要求:[1] 在本地創建文件夾dir。[2] 將myserver中的/var/lib/locales/supported.d文件夾下載到本地dir文件夾中。 #在homework_3中創建文件夾dir mkdir dir#在本地執行scp命令scp -r myserver:/var/lib/locales/supported.d dir5.homework_4
(4) 進入homework_4文件夾,編寫腳本remote_mkdir.sh和remote_rmdir.sh,要求:[1] 在myserver服務器上創建并清空文件夾:~/homework/lesson_4/homework_4/[2] 本地目錄下僅包含remote_mkdir.sh和remote_rmdir.sh[3] remote_mkdir.sh和remote_rmdir.sh具有可執行權限[4] remote_mkdir.sh接收一個傳入參數。格式為 ./remote_mkdir.sh directory_name該操作可以在myserver服務器上的~/homework/lesson_4/homework_4/目錄下,創建一個名為directory_name的文件夾[5] remote_rmdir.sh接收一個傳入傳輸。格式為 ./remote_rmdir.sh directory_name該操作可以將myserver服務器上的~/homework/lesson_4/homework_4/目錄下的名為directory_name的文件夾刪掉。[6] 注意:傳入的文件參數可能包含空格。兩個腳本均不需要判斷傳入參數的合法性。 #在服務器端創建文件夾 mkdir homework/lesson_4/homework_4 -p#在本地端的homework_4 創建vim腳本 并加上可執行權限vim remote_mkdir.sh vim remote_rmdir.shchmod +x * #給該文件加下所有腳本全部加上可執行權限#打開remote_mkdir.sh #! /bin/bash #相當于頭文件ssh myserver mkdir homework/lesson_4/homework_4/\"$1\" #雙引號加轉義符是因為第一次執行ssh命令會把該雙引號解析,加上就可以告訴機器,第一次執行不要解析#ssh myserver mkdir ~/homework/lesson_4/homework_4/\"$1\" 該條語句會報錯,是因為進入到服務器端看到的文件只有homework ,也就是當前默認在~目錄下#打開remote_rmdir.sh#! /bin/bashssh myserver rm homework/lesson_4/homework_4/\"$1\" -r#最后一定要退出vim并保存?上圖是因為:當把一個文件夾命名為帶空格的名字時,單引號的作用是為了提醒該文件夾名稱中間帶有空格
?如果想要傳入參數時:參數帶有空格可以加上雙引號
總結
以上是生活随笔為你收集整理的ssh登录——scp传文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自考计算机本科怎么学,自考经验:3至5年
- 下一篇: MacOS Big Sur EFI fo