亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

ssh免密登錄服務(wù)器和scp的使用

Jochen / 2080人閱讀

摘要:原理遠(yuǎn)程主機收到用戶的登錄請求,把自己的公鑰發(fā)給用戶。也就是說,要實現(xiàn)免密碼登入,首先要設(shè)置鑰匙。把公鑰放到遠(yuǎn)程服務(wù)器比如我的基本都安裝了,萬一沒有,上。

TL;DR

本地登錄服務(wù)器 ssh user@remote -p port,端口是22的話ssh user@remote,退出登錄exit

本地免密碼登錄 ssh-copy-id user@remote -p port,這在寫腳本服務(wù)器控制時特別有用

給服務(wù)器配置別名 code ~/.ssh/config追加一些內(nèi)容,就可以ssh selfname登錄,不再需要記服務(wù)器ip地址了

執(zhí)行命令ssh selfname "cd ~;ls",將會在服務(wù)器上執(zhí)行引號里的命令,執(zhí)行之后其自動關(guān)閉遠(yuǎn)程服務(wù)

將a電腦文件(夾)復(fù)制到b電腦上哪個文件夾下面:scp username@a電腦ip:文件路徑 username@b電腦ip:文件夾路徑,是文件夾的話加上-r,這里也可以用別名,通常本機的話省略username@a電腦ip:

大段引用ssh的基本加高級用法

基礎(chǔ)

SSH是一種網(wǎng)絡(luò)協(xié)議,用于計算機之間的加密登錄。原理:

遠(yuǎn)程主機收到用戶的登錄請求,把自己的公鑰發(fā)給用戶。

用戶使用這個公鑰,將登錄密碼加密后,發(fā)送回來。

遠(yuǎn)程主機用自己的私鑰,解密登錄密碼,如果密碼正確,就同意用戶登錄。

當(dāng)遠(yuǎn)程主機的公鑰被接受以后,它就會被保存在本地文件~/.ssh/known_hosts之中,此外系統(tǒng)也有一個這樣的文件,通常是/etc/ssh/ssh_known_hosts,保存一些對所有用戶都可信賴的遠(yuǎn)程主機的公鑰。

基本命令:

ssh user@remote -p port

# user 是你在遠(yuǎn)程機器上的用戶名,如果不指定的話默認(rèn)為當(dāng)前用戶
# remote 是遠(yuǎn)程機器的地址,可以是 IP,域名,或者是后面會提到的別名
# port 是 SSH Server 監(jiān)聽的端口,如果不指定的話就為默認(rèn)值 22
# 比如我常用的 ssh zhm@120.79.52.223

通常在本地電腦輸入以上命令之后,遠(yuǎn)程服務(wù)器就會詢問密碼,你輸入的時候是看不見任何波動,輸入完回車就可以了~,如果報錯ssh: connect to host remote port 22: Connection refused,說明服務(wù)器沒有按照ssh server,Ubantu Desktop系統(tǒng)默認(rèn)是沒有這個的,安裝命令sudo apt-get install openssh-server

免密碼登錄

每次 ssh 都要輸入密碼是不是很煩呢?與密碼驗證相對的,是公鑰驗證。也就是說,要實現(xiàn)免密碼登入,首先要設(shè)置 SSH 鑰匙。也就是本地電腦生成公鑰私鑰,然后把公鑰放在遠(yuǎn)程服務(wù)器上就可以了! 原理很簡單,就是用戶將自己的公鑰儲存在遠(yuǎn)程主機上。登錄的時候,遠(yuǎn)程主機會向用戶發(fā)送一段隨機字符串,用戶用自己的私鑰加密后,再發(fā)回來。遠(yuǎn)程主機用事先儲存的公鑰進行解密,如果成功,就證明用戶是可信的,直接允許登錄shell,不再要求密碼。

# 查看本地有沒有
ls ~/.ssh
# 沒有就生成
ssh-keygen
# 在~/.ssh/目錄下,會新生成兩個文件:id_rsa.pub和id_rsa。前者是你的公鑰,后者是你的私鑰。
# 把公鑰放到遠(yuǎn)程服務(wù)器
ssh-copy-id user@remote -p port
# 比如我的 ssh-copy-id zhm@120.79.52.223

ssh-copy-id基本都安裝了,萬一沒有,mac上brew install ssh-copy-id。 windows麻煩點ssh user@remote -p port "mkdir -p .ssh && cat >> .ssh/authorized_keys" < ~/.ssh/id_rsa.pub,意思是在遠(yuǎn)端執(zhí)行新建 .ssh 文件夾,并把本地的 ~/.ssh/id_rsa.pub (也就是公鑰)追加到遠(yuǎn)端的 .ssh/authorized_keys 中。當(dāng)然,不使用這條命令的話,你也可以手動操作這個過程,即先復(fù)制公鑰,再登入遠(yuǎn)程機器,粘貼到 .ssh/authorized_keys 當(dāng)中。

配置別名

每次都輸入 ssh user@remote -p port,時間久了也會覺得很麻煩,特別是當(dāng) user, remote 和 port 都得輸入,而且還不好記憶的時候。配置別名可以讓我們進一步偷懶。比如我想用ssh lab替換上面一串

# cat>>某文件<> 追加的意思 <
# 因為是前端,直接用vscode編輯
code ~/.ssh/config
# 追加以下內(nèi)容,保存
Host lab
    HostName remote
    User user
    Port port

# 來登錄吧
ssh lab

# 比如我的
# Host han
    # HostName 120.79.52.223
    # User zhm
    # Port 22
# ssh han
命令行執(zhí)行登錄并且在目標(biāo)服務(wù)器上執(zhí)行命令

命令行執(zhí)行登錄并且在目標(biāo)服務(wù)器上執(zhí)行命令:

# 單引號或者雙引號,將命令包起來,然后分號隔開命令
ssh user@remoteNode "cd /home ; ls"

如果是很多命令的話,需要建一個腳本。

# 建一個腳本文件test.sh,里面寫上這個,然后執(zhí)行 sh test.sh
#!/bin/bash  
# 遠(yuǎn)程執(zhí)行的內(nèi)容在"< < remotessh " 至" remotessh "之間,如果不想本機出現(xiàn)日志的話 ssh user@remoteNode >/dev/null 2>&1   << remotessh
ssh user@remoteNode << remotessh
ls
exit
remotessh

啊,寫腳本就容易了,有木有!

傳輸文件

兩臺機器間文件傳輸可以用scp,它的地址格式與 ssh 基本相同,都是可以省略用戶名和端口,稍微的差別在與指定端口時用的是大寫的 -P 而不是小寫的。不過,如果你已經(jīng)配置了別名,那么這都不重要,因為 scp 也支持直接用別名

# 總的:本機的可以省略電腦的ip,默認(rèn)的遠(yuǎn)程當(dāng)前文件夾是 Home目錄(~),將A電腦上的文件復(fù)制到B電腦上
# 注意的地方:A若是文件,B電腦若也是文件的路徑,不管文件存不存在,都會將A文件內(nèi)容寫入到B這個文件。
#                    B電腦若是文件夾,不管文件夾存不存在,都會在這個文件夾下生成A電腦同名的文件和內(nèi)容,有的話則會覆蓋同名文件
# A若是文件夾,加上-r,B電腦若是文件的路徑會報錯,B電腦若是文件夾路徑,文件夾不存在的話則會建立這個文件夾且放入A文件夾里面的內(nèi)容(相當(dāng)于將A文件夾挪過去然后重命名),文件夾存在的話,會在這個文件夾下面生成一個和A同名的文件夾,里面內(nèi)容一致
scp A電腦:文件路徑 B電腦:文件路徑

# 把本地的 /path/to/local/file 文件傳輸?shù)竭h(yuǎn)程的 /path/to/remote/file  
scp -P port /path/to/local/file user@remote:/path/to/remote/file

# 也可以使用別名
scp /path/to/local/file lab:/path/to/remote/file

# 把遠(yuǎn)程的 /path/to/remote/file 下載到本地的 /path/to/local/file
scp lab:/path/to/remote/file /path/to/local/file

# 遠(yuǎn)程的默認(rèn)路徑是家目錄
# 下面命令把當(dāng)前目錄下的 file 傳到遠(yuǎn)程的 ~/dir/file
scp file lab:dir/file

# 加上 -r 命令可以傳送文件夾
# 下面命令可以把當(dāng)前目錄下的 dir 文件夾傳到遠(yuǎn)程的家目錄下
scp -r dir lab:

# 別忘了 . 可以用來指代當(dāng)前目錄
# 下面命令可以把遠(yuǎn)程的 ~/dir 目錄下載到當(dāng)前目錄里面
scp -r lab:dir/ .

如果覺得使用命令行傳輸文件渾身不自在,你還可以使用 SFTP 協(xié)議。任何支持 SFTP 協(xié)議的客戶端都能用你的 SSH 賬號信息登入并管理文件,比如開源的有圖形化界面的FTP客戶端 FileZilla。別忘了,在這些客戶端里面,你也可以指定你的私鑰(~/.ssh/id_rsa),然后就能做到無密碼登入了。

保持程序在后臺運行

以下命令均在服務(wù)器執(zhí)行

nohup
# 讓程序在后臺運行 比如 nohup node index.js &
nohup 一直執(zhí)行的命令 &
# 看下任務(wù)號 node的那個
ps
# 如果需要終止的話
kill 21455
tmux

tmux更能執(zhí)行復(fù)雜的程序,tmux還能管理多個窗口,窗口切分,復(fù)制粘貼等等,mac用戶使用tmux更方便,新建會話tmux -CC,恢復(fù)的時候tmux -CC attach

# 服務(wù)器上安裝tmux
sudo apt-get install tmux

# 運行tmux,進入會話,此時運行任何東西都不會因為退出ssh而被殺死
tmux

# 暫時離開會話 ctrl+b 再按下d

# 恢復(fù)會話
# tmux attach

# tmux命令必須運行在服務(wù)器上

阮一峰大神的ssh介紹
ssh的基本加高級用法
linux中的shell用ssh自動登錄遠(yuǎn)程服務(wù)器后執(zhí)行命令并自動
ssh轉(zhuǎn)發(fā)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/6825.html

相關(guān)文章

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<