1. 程式人生 > >運維~ssh-copy-id三步實現SSH無密碼登入和ssh常用命令

運維~ssh-copy-id三步實現SSH無密碼登入和ssh常用命令

ssh-keygen  產生公鑰與私鑰對.

ssh-copy-id 將本機的公鑰複製到遠端機器的authorized_keys檔案中,ssh-copy-id也能讓你有到遠端機器的home, ~./ssh , 和 ~/.ssh/authorized_keys的權利


第一步:在本地機器上使用ssh-keygen產生公鑰私鑰對

  1. $ ssh-keygen
     

第二步:用ssh-copy-id將公鑰複製到遠端機器中

$  ssh-copy-id -i .ssh/id_rsa.pub  使用者名稱字@192.168.x.xxx

注意: ssh-copy-id 將key寫到遠端機器的 ~/ .ssh/authorized_key.檔案中

第三步: 登入到遠端機器不用輸入密碼

  1. $  ssh 使用者名稱字@192.168.x.xxx
  2. Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2

常見問題:

  1. ssh-copy-id -u eucalyptus -i ~eucalyptus/.ssh/id_rsa.pub ssh 使用者名稱字@192.168.x.xxx
  2. 第一次需要密碼登入

上述是給eucalyptus使用者賦予無密碼登陸的權利

  1. /usr/bin/ssh-copy-id: ERROR: No identities found

使用選項 -i ,當沒有值傳遞的時候或者 如果 ~/.ssh/identity.pub

 檔案不可訪問(不存在), ssh-copy-id 將顯示上述的錯誤資訊  ( -i選項會優先使用將ssh-add -L的內容)

ssh命令

1、複製SSH金鑰到目標主機,開啟無密碼SSH登入

ssh-copy-id [email protected]

如果還沒有金鑰,請使用ssh-keygen命令生成。

2、從某主機的80埠開啟到本地主機2001埠的隧道

ssh -N -L2001:localhost:80 somemachine

現在你可以直接在瀏覽器中輸入http://localhost:2001訪問這個網站。

3、將你的麥克風輸出到遠端計算機的揚聲器

dd if=/dev/dsp | ssh -c arcfour -C 
[email protected]
dd of=/dev/dsp

這樣來自你麥克風埠的聲音將在SSH目標計算機的揚聲器埠輸出,但遺憾的是,聲音質量很差,你會聽到很多嘶嘶聲。

4、比較遠端和本地檔案

ssh [email protected] cat /path/to/remotefile | diff /path/to/localfile –

在比較本地檔案和遠端檔案是否有差異時這個命令很管用。

5、通過SSH掛載目錄/檔案系統

sshfs [email protected]:/path/to/folder /path/to/mount/point

6、通過中間主機建立SSH連線

ssh -t reachable_host ssh unreachable_host

Unreachable_host表示從本地網路無法直接訪問的主機,但可以從reachable_host所在網路訪問,這個命令通過到reachable_host的“隱藏”連線,建立起到unreachable_host的連線。

7、將你的SSH公鑰複製到遠端主機,開啟無密碼登入 – 簡單的方法

ssh-copy-id [email protected]

8、直接連線到只能通過主機B連線的主機A

ssh -t hostA ssh hostB

當然,你要能訪問主機A才行。

9、建立到目標主機的持久化連線

ssh -MNf <user>@<host>

在後臺建立到目標主機的持久化連線,將這個命令和你~/.ssh/config中的配置結合使用:

Host host
ControlPath ~/.ssh/master-%[email protected]%h:%p
ControlMaster no

所有到目標主機的SSH連線都將使用持久化SSH套接字,如果你使用SSH定期同步檔案(使用rsync/sftp/cvs/svn),這個命令將非常有用,因為每次開啟一個SSH連線時不會建立新的套接字。

10、通過SSH連線螢幕

ssh -t remote_host screen –r

直接連線到遠端螢幕會話(節省了無用的父bash程序)。

11、埠檢測(敲門)

knock <host> 3000 4000 5000 && ssh -p <port> [email protected] && knock <host> 5000 4000 3000

在一個埠上敲一下開啟某個服務的埠(如SSH),再敲一下關閉該埠,需要先安裝knockd,下面是一個配置檔案示例。

[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 3000,4000,5000
seq_timeout = 5
command = /sbin/iptables -A INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 5000,4000,3000
seq_timeout = 5
command = /sbin/iptables -D INPUT -i eth0 -s %IP% -p tcp –dport 22 -j ACCEPT
tcpflags = syn

12、刪除文字檔案中的一行內容,有用的修復

ssh-keygen -R <the_offending_host>

在這種情況下,最好使用專業的工具。

13、通過SSH運行復雜的遠端shell命令

ssh host -l user $(<cmd.txt)

更具移植性的版本:

ssh host -l user “`cat cmd.txt`”

14、通過SSH將MySQL資料庫複製到新伺服器

mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME | ssh -C [email protected] “mysql -uUSER -pPASS NEW_DB_NAME”

通過壓縮的SSH隧道Dump一個MySQL資料庫,將其作為輸入傳遞給mysql命令,我認為這是遷移資料庫到新伺服器最快最好的方法。

15、刪除文字檔案中的一行,修復“SSH主機金鑰更改”的警告

sed -i 8d ~/.ssh/known_hosts

16、從一臺沒有SSH-COPY-ID命令的主機將你的SSH公鑰複製到伺服器

cat ~/.ssh/id_rsa.pub | ssh [email protected] “mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys”

如果你使用Mac OS X或其它沒有ssh-copy-id命令的*nix變種,這個命令可以將你的公鑰複製到遠端主機,因此你照樣可以實現無密碼SSH登入。

17、實時SSH網路吞吐量測試

yes | pv | ssh $host “cat > /dev/null”

通過SSH連線到主機,顯示實時的傳輸速度,將所有傳輸資料指向/dev/null,需要先安裝pv。

如果是Debian:

apt-get install pv

如果是Fedora:

yum install pv

(可能需要啟用額外的軟體倉庫)。

18、如果建立一個可以重新連線的遠端GNU screen

ssh -t [email protected] /usr/bin/screen –xRR

人們總是喜歡在一個文字終端中開啟許多shell,如果會話突然中斷,或你按下了“Ctrl-a d”,遠端主機上的shell不會受到絲毫影響,你可以重新連線,其它有用的screen命令有“Ctrl-a c”(開啟新的shell)和“Ctrl-a a”(在shell之間來回切換),請訪問http://aperiodic.net/screen/quick_reference閱讀更多關於screen命令的快速參考。

19、繼續SCP大檔案

rsync –partial –progress –rsh=ssh $file_source [email protected]$host:$destination_file

它可以恢復失敗的rsync命令,當你通過VPN傳輸大檔案,如備份的資料庫時這個命令非常有用,需要在兩邊的主機上安裝rsync。

rsync –partial –progress –rsh=ssh $file_source [email protected]$host:$destination_file local -> remote

rsync –partial –progress –rsh=ssh [email protected]$host:$remote_file $destination_file remote -> local

20、通過SSH W/ WIRESHARK分析流量

ssh [email protected] ‘tshark -f “port !22″ -w -' | wireshark -k -i –

使用tshark捕捉遠端主機上的網路通訊,通過SSH連線傳送原始pcap資料,並在wireshark中顯示,按下Ctrl+C將停止捕捉,但也會關閉wireshark視窗,可以傳遞一個“-c #”引數給tshark,讓它只捕捉“#”指定的資料包型別,或通過命名管道重定向資料,而不是直接通過SSH傳輸給wireshark,我建議你過濾資料包,以節約頻寬,tshark可以使用tcpdump替代:

ssh [email protected] tcpdump -w – ‘port !22′ | wireshark -k -i –

21、保持SSH會話永久開啟

autossh -M50000 -t server.example.com ‘screen -raAd mysession’

開啟一個SSH會話後,讓其保持永久開啟,對於使用膝上型電腦的使用者,如果需要在Wi-Fi熱點之間切換,可以保證切換後不會丟失連線。

22、更穩定,更快,更強的SSH客戶端

ssh -4 -C -c blowfish-cbc

強制使用IPv4,壓縮資料流,使用Blowfish加密。

23、使用cstream控制頻寬

tar -cj /backup | cstream -t 777k | ssh host ‘tar -xj -C /backup’

使用bzip壓縮資料夾,然後以777k bit/s速率向遠端主機傳輸。Cstream還有更多的功能,請訪問http://www.cons.org/cracauer/cstream.html#usage瞭解詳情,例如:

echo w00t, i’m 733+ | cstream -b1 -t2

24、一步將SSH公鑰傳輸到另一臺機器

ssh-keygen; ssh-copy-id [email protected]; ssh [email protected]

這個命令組合允許你無密碼SSH登入,注意,如果在本地機器的~/.ssh目錄下已經有一個SSH金鑰對,ssh-keygen命令生成的新金鑰可能會覆蓋它們,ssh-copy-id將金鑰複製到遠端主機,並追加到遠端賬號的~/.ssh/authorized_keys檔案中,使用SSH連線時,如果你沒有使用金鑰口令,呼叫ssh [email protected]後不久就會顯示遠端shell。

25、將標準輸入(stdin)複製到你的X11緩衝區

ssh [email protected] cat /path/to/some/file | xclip

你是否使用scp將檔案複製到工作用電腦上,以便複製其內容到電子郵件中?xclip可以幫到你,它可以將標準輸入複製到X11緩衝區,你需要做的就是點選滑鼠中鍵貼上緩衝區中的內容。

相關推薦

~ssh-copy-id實現SSH無密碼登入ssh常用命令

ssh-keygen  產生公鑰與私鑰對. ssh-copy-id 將本機的公鑰複製到遠端機器的authorized_keys檔案中,ssh-copy-id也能讓你有到遠端機器的home, ~./ssh , 和 ~/.ssh/authorized_keys的權利

【轉】使用ssh-keygenssh-copy-id實現SSH無密碼登錄

works message targe auth mes unix use ner not 【原】http://blog.chinaunix.net/uid-26284395-id-2949145.html ssh-keygen 產生公鑰與私鑰對. ssh-copy-id

使用ssh-keygenssh-copy-id實現SSH無密碼登入

from  http://blog.chinaunix.net/uid-26284395-id-2949145.html ssh-keygen  產生公鑰與私鑰對. ssh-copy-id 將本機的公鑰複製到遠端機器的authorized_keys檔案中,ssh-copy

ssh-copy-id實現SSH無密碼登入ssh常用命令

ssh-keygen  產生公鑰與私鑰對. ssh-copy-id 將本機的公鑰複製到遠端機器的authorized_keys檔案中,ssh-copy-id也能讓你有到遠端機器的home, ~./ssh , 和 ~/.ssh/authorized_keys的權利 第一步:

mac使用ssh-keygenssh-copy-id實現SSH無密碼登入

ssh-keygen :產生公鑰與私鑰對. ssh-copy-id :將本機的公鑰複製到遠端機器的authorized_keys檔案中,ssh-copy-id也能讓你有到遠端機器的home, ~.

無密鑰登錄的自動腳本實現ssh-copy-id、expect免交互輸入腳本)

無密鑰登錄的自動腳本實現(ssh-copy-id、expect免交互輸入腳本)無密鑰登錄的自動腳本實現:vim auto_ssh.sh#!/usr/bin/expect set timeout 10 set username [lindex $argv 0] set password [linde

利用ssh-copy-id實現SSH無密碼登錄

ssh copy id 第一步: 產生公鑰與私鑰對:[[email protected]]# ssh-keygen -t rsa按照提示輸入完後,會在~/.ssh目錄下生成id_rsa和id_rsa.pub這兩個文件 第二步:用ssh-copy-id將公鑰復制到遠程機器中ssh-copy

ssh-keygenssh-copy-id實現免密登入遠端主機

       ssh免密登入在實際工作中有重要的作用,甚至有的應用部署也必須要免密登入遠端主機,例如hadoop環境搭建。       免密登入,需要先在本機生成公鑰,然後將公鑰拷貝到遠端主機,拷貝的過程,既可以手動(在遠端主機根目錄下建立.ssh目錄,然後將公鑰存入該目錄下

ssh-copy-id命令解析

ssh-agent mac 優先 出了 agent 刪除 是否 bsp -c ssh-copy-id命令可以把本地主機的公鑰復制到遠程主機的authorized_keys文件上, ssh-copy-id命令也會給遠程主機的用戶主目錄(home)和~/.ssh, 和~/.s

IDEA tomcat實現熱部署

term idea 等等 通過 size 配置 pos gmv 親測 IDEA tomcat三步實現熱部署 添加Artifacts選項 添加Artifacts選項,XXXwar 和 XXXwar exploded二選一,若要熱部署須選後者。 設置tom

Python自動化 - day17 - Django()CSRF

coo 頁面加載 轉賬 安全漏洞 開發人員 無法 name 頁面 play CSRF跨站請求偽造   CSRF跨站點請求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性,你可以這樣來理解:攻擊者盜用了你的身份,以你的名義發送惡

expect 執行ssh-copy-id

-c dex nbsp display PE pri audio splay res vi deploy_ssh_key.exp #!/usr/bin/expect -f set timeout 2 set ipaddress [lindex $argv 0] set

解決ssh-copy-id時Host key verification failed的錯誤

wan 復制 ant mark con 用戶 本地 RoCE oot 如果因為某種原因(服務器系統重裝,服務器間IP地址交換,DHCP,虛擬機重建,中間人劫持),這裏筆者是因為虛擬機重建的緣故,該IP地址的公鑰改變了,當使用 SSH 連接的時候會出現 然後筆者把.s

MySQL 8.0.11 innodb cluster 管理手冊之增加節點

全量備份 size images 主機 配置文件 如果 tex 頻繁 切換 MySQL 8.0.11 innodb cluster 運維管理手冊之三 增加節點 作者 方連超 假設innodb cluster集群跑了1年,突然某個節點掛掉了,這個時候,日誌也已經沒有binl

python實現人臉識別

輸出 但是 使用 window img 軟件包 更多 red iss 原文地址https://www.toutiao.com/a6475797999176417550 Face Recognition軟件包 這是世界上最簡單的人臉識別庫了。你可以通過Python引用或者命令

免密登錄ssh-copy-id 如何使用非22端口 + rsync 同步遠程機器的文件到本地

bsp art --delete 保存 ssh 參考 主機 使用 刪除 其中:id_rsa為私鑰文件,id_rsa.pub為公鑰文件 ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 2122 root@IP " 我的:ssh-copy-id

自動化-Ansible (第部:Playbook 介紹)

blog comm 擴展性 變量 wal ansi .com 基礎 fire 前言 之前有兩篇文章分別講了 Ansible 的部署、Ansible 的 模塊使用,對 Ansible 有了最初的了解,這篇文章最主要是要介紹 Playbook。需要了解 Ansible 的部署請

linux設定ssh免密登入ssh-copy-id命令

linux系統配置免密碼的方式: 1:ssh-keygen -t rsa ssh-keygen -t dsa 生成金鑰 2:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] # 接下來一路回車到底

區域網無紙化會議封裝,只需實現推流播放

又名 基於rstp的錄屏直播 上篇文章 步驟: 1.下載lib到本地,然後依賴 RtspServerAndVlcPlay git clone https://github.com/wobiancao/RtspServerAndVlcPlay.git 如果

Linux設定免密登入的幾種方法(ssh-copy-id / ansible)

一. ssh-keygen -t rsa 生成公鑰、私鑰 authorized_keys:存放遠端免密登入的公鑰,主要通過這個檔案記錄多臺機器的公鑰 id_rsa : 生成的私鑰檔案 id_rsa.pub : 生成的公鑰檔案 know_hosts : 已知的主