国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Jochen / 1981人閱讀

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

TL;DR

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

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

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

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

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

大段引用ssh的基本加高級(jí)用法

基礎(chǔ)

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

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

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

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

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

基本命令:

ssh user@remote -p port

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

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

免密碼登錄

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

# 查看本地有沒(méi)有
ls ~/.ssh
# 沒(méi)有就生成
ssh-keygen
# 在~/.ssh/目錄下,會(huì)新生成兩個(gè)文件: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基本都安裝了,萬(wàn)一沒(méi)有,mac上brew install ssh-copy-id。 windows麻煩點(diǎn)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)然,不使用這條命令的話,你也可以手動(dòng)操作這個(gè)過(guò)程,即先復(fù)制公鑰,再登入遠(yuǎn)程機(jī)器,粘貼到 .ssh/authorized_keys 當(dāng)中。

配置別名

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

# cat>>某文件<> 追加的意思 <
# 因?yàn)槭乔岸耍苯佑胿scode編輯
code ~/.ssh/config
# 追加以下內(nèi)容,保存
Host lab
    HostName remote
    User user
    Port port

# 來(lái)登錄吧
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í)行命令:

# 單引號(hào)或者雙引號(hào),將命令包起來(lái),然后分號(hào)隔開命令
ssh user@remoteNode "cd /home ; ls"

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

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

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

傳輸文件

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

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

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

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

保持程序在后臺(tái)運(yùn)行

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

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

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

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

# 運(yùn)行tmux,進(jìn)入會(huì)話,此時(shí)運(yùn)行任何東西都不會(huì)因?yàn)橥顺鰏sh而被殺死
tmux

# 暫時(shí)離開會(huì)話 ctrl+b 再按下d

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/6825.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<