1. 程式人生 > >針對不同主機使用不同 SSH Key

針對不同主機使用不同 SSH Key

提醒:本文最後更新於 1359 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

考慮到安全性和便捷性,相信大部分同學都已經習慣了 SSH key 登入這種方式。有時候我們需要針對不同主機使用不同的 key,甚至針對同一個主機使用不同的 key,都可以通過 ~/.ssh/config 這個配置檔案來實現。

預設情況下,ssh 會使用 ~/.ssh/id_rsa。這裡,我通過 ssh-keygen 命令生成另外一個 key 用於 git.imququ.com 這個我自建的 gitlab 服務:

cd ~/.ssh/
ssh-keygen -t rsa -C "[email protected]
"
Generating public/private rsa key pair. Enter file in which to save the key (/Users/QuQu/.ssh/id_rsa): id_rsa_gitlab ...

接下來將 id_rsa_gitlab.pub 這個公鑰檔案內容新增到 gitlab 的後臺(Mac 下可以使用 pbcopy 這個命令複製內容到剪下板,避免出現格式問題)。

pbcopy < id_rsa_gitlab.pub

現在我們來 git clone 專案試試:

git clone [email protected]:qgy18/ququblog2.git

Cloning into 'ququblog2'
... Permission denied (publickey). fatal: Could not read from remote repository.

顯然,提示沒有許可權。因為預設 ssh 根本不認我剛剛生成的 id_rsa_gitlab 這個私鑰。我們需要做的是告訴 ssh 要用另外的 key 登入,開啟 ~/.ssh/config(沒有就新建一個),輸入以下內容:

#[email protected]
Host git.ququ
  HostName git.imququ.com
  Port 22
  User git
  IdentityFile ~/.ssh/id_rsa_gitlab

第一行是註釋,第二行是指定如果 Host 匹配上了 git.ququ,就使用接下來幾行指定的配置登入 ssh。HostName、Port、User、IdentityFile 分別是具體的主機、埠、使用者名稱和私鑰 key 的配置。需要注意的是 Host 可以跟 HostName 一樣,也可以定義為你想要的任何內容,所以通常我用一個好記的短名稱作為 Host。

將之前的「[email protected]」替換為「git.ququ」再來試試:

git clone git.ququ:qgy18/ququblog2.git

Cloning into 'ququblog2'...
remote: Counting objects: 1360, done.

嗯,這樣就沒問題了。同樣,如果要給同一個主機指定不同的 key 檔案也很簡單:

Host host1
  HostName www.example.com
  User xx
  IdentityFile ~/.ssh/id_rsa_1

Host host2
  HostName www.example.com
  User xx
  IdentityFile ~/.ssh/id_rsa_2

這樣全域性任何地方通過 host1、host2 登入 ssh 時,都會自動選擇不同的 key 檔案。

所以,通過 ssh 的 config 檔案可以進一步簡化登入過程。實際上我可以通過「ssh q」登入我的 VPS;配置 SFTP 等服務時,也只用在 host 那一欄填一個「q」,使用者名稱、埠什麼的都不用填。因為我有這樣的配置:

Host q
  HostName www.imququ.com
  Port 22
  User jerry
  IdentityFile ~/.ssh/id_rsa

由於引數是集中配置的,如果某天我要更換 ssh 服務的埠,只需要在這裡改一次就可以了,十分方便。實際上,ssh config 的 Host 欄位還支援萬用字元,有更高階的玩法,不過我暫時沒這複雜的需求。這裡有一份完整文件,以後有需要再研究。

--EOF--

提醒:本文最後更新於 1359 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

相關推薦

CentOS 7 下不同主機ssh 免密碼登入

因在CentOS 7 下為了配置 hadoop 叢集,需要建立不同的CentOS主機之間的信任。簡單說,就是從一臺CentOS主機通過 ssh 命令以使用者免密碼(我這裡用到的使用者名稱和密碼都是zhimin)登入到另一臺CentOS主機。其中 zhimin 是我在安裝三臺

針對不同主機使用不同 SSH Key

提醒:本文最後更新於 1359 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 考慮到安全性和便捷性,相信大部分同學都已經習慣了 SSH key 登入這種方式。有時候我們需要針對不同主機使用不同的 key,甚至針對同一個主機使用不同的 key,都可以通過 ~/.ssh/config 這個配置檔案

同時使用多個 SSH Key 管理不同 Github 賬號的 Repo (設定 Host 別名)

Github 禁止不同的賬號使用相同的 SSH Key ,如果有多個 SSH Key ,使用 SSH 而非 HTTPS 方式推送 Git Repo 的時候,如果每次都手動替換預設的 id_rsa 會非常的不方便。 首先建立新使用者的 SSH Key : cd ~/.ssh

github賬號與gitlab同一電腦下不同SSH Key配置

很多情況下,大家都會遇到一個問題,自己電腦上配置的SSH Key可以與自己的gitbub賬號匹配,卻不能匹配公司內部的git伺服器賬號,即gitlab。下面我將講述這兩種賬號的配置過程: 1. github賬號SSH Key配置 (1) 設定git的名字和郵

針對兩種不同的日期格式進行轉成年月日時分秒的格式

provide mes nbsp code oba cnblogs -m bsp class 有兩個時間字符串,格式分別是 string dateEnglish = "1-6-14 8:25";//格式為 月-日-年 string dateFranch = "13-1-1

ssh登陸主機遇到Host key varification failed故障

ssh登陸主機遇到host key varification failed故障ssh登陸主機遇到Host key varification failed故障解決方法:ssh-keygen -R hostname #生成新的known_hosts本文出自 “boyhack” 博客,請務必保留此出處h

Nginx部署虛擬主機(不同域名、不同端口、不同IP地址)

mar 互聯 login 網站 支持 一個 http useradd log 介紹 Nginx是一款輕量級的HTTP服務器軟件,由俄羅斯的Igor Sysoev開發。它能夠支持高達50000個並發連接數的響應,擁有強大的靜態資源處理能力,運行穩定,並且系統資源消耗非常低,

apache 虛擬目錄 不同主機不同端口

ado ipv6 jpg ice user date erro apach 所在 實驗環境:rhel6作服務端,宿主機或另開一臺win系統作訪問端實驗目的:實現網頁多路訪問實驗需求:服務端ip地址:192.168.100.10 訪問端ip地址:192.168.100.2

不同主機之間的拷貝

架構 文件 不同 mnt image 目錄文件 yum sts ins 1.rsync -avz A主機目錄文件 –e ‘ssh –p 22’ root@B主機IP:目標目錄(拷貝)。 –e ‘ssh –p 22’用特定通道進行不同主機拷貝。拷貝 /etc/hosts

Linux——不同主機間時間同步

一、chrony chrony是一個開源的自由軟體,它能保持系統時鐘與時鐘伺服器(NTP)同步,讓時間保持精確 chrony由兩部分組成:chronyd和chronyc chronyd是一個後臺執行的守護程序,用於調整核心中執行的系統時鐘與時鐘伺服器同步 同步時間

阿里雲ECS nginx伺服器主機lnmp環境,同一埠同一IP,不同虛擬主機;同一主機不同埠,不同網站 設定方法

最近買了阿里雲伺服器掛載我個人網站,我有好幾個域名怎麼辦?比如我的域名為 tust.我愛你 1 . 建立虛擬主機,可以參考lnmp的設定點選開啟連結 2 . 安裝ftp(安裝方法點選)上傳檔案到你建立的虛擬主機,我採用ftp上傳至虛擬空間 /home/wwwroot/tust.我愛

【Linux命令】用 scp 命令在不同主機之間拷貝檔案或目錄

scp 命令 scp 命令 意思是 secure copy 即安全拷貝,可以把它看做是 cp 命令的高階版,可以跨主機拷貝。 經常用來在區域網內不同主機之間分享檔案,或者在本機與遠端主機中分享檔案。 在使用的時候就像使用cp 命令一樣,第一個引數是源,第二個引數的目的。

基於SpringCloud+不同主機上的微服務相互呼叫報錯:java.net.UnknownHostException:主機

專案背景:採用Spring Cloud+IEDA+Maven搭建了由多個微服務組成的專案,部署上線是用的是Docker容器技術。 問題描述:部署上線過程中,各個微服務都正常啟動,而且都註冊到了eureka註冊中心,但是相互呼叫時報java.net.Unknown

rancher部署springcloud,各微服務放在不同主機需要注意的點。

rancher建立了一個應用 在應用名裡填寫名稱,其他不添,一個應用就建立了,應用建立後就建立具體服務 名稱隨意,比方你在此處建立eureka,就寫eureka,映象裡添自己docker push到自己的私有映象庫,或者開源的映象,這裡不做贅述。 eureka啟

如何解決虛擬機器ping不同主機主機可以ping通虛擬機器

昨天在自己的Win7系統上安裝了VirtualBox,然後在虛擬機器上安裝了CentOS7.3,檢視虛擬機器和自己的主機是一個網段的。主機可以ping通虛擬機器,但是虛擬機器ping不同主機。解決辦法:在控制面板--》windows防火牆--》高階設定--》入站規則--》檔案

域名解析到主機不同埠的設定

問題:註冊了一個國際域名,如abc.com,現在有一個伺服器,2003系統,預設的web埠80已經被一個網站給使用了,現在在IIS上新建一個網站,應該怎樣設定才能將域名指向這個新建的網站?在IIS裡新建網站時使用了別的埠,但是在域名DNS解析上面只能新增IP,不能指定埠,如

MYSQL不同主機下資料表結構轉移

問題:現將 192.168.200.XXX MySQL資料庫A中表結構完全複製至127.0.0.1 MySQL資料庫B 處理方式1: 1、匯出資料庫A中表結構為sql檔案,語句為: mysqldump

不同主機間的 Docker 容器相互通訊

操作參照了:https://testerhome.com/topics/2648 Ubuntu14.0.4為例 宿主主機: ip :192.168.220.131   (ifconfig檢視) gateway:192.168.220.2  (netstat -rn  de

Swagger2 (4)針對於相同url headers 引數不同對映不同的方法問題(已解決)

在真實的開發中,會有手機介面有n多個版本的介面,在管理上非常的混亂,呼叫方在這種情況下,根本不知道我需要呼叫的是哪個版本的介面,時間一長,開發這個介面的人他們也不知道了,這樣的開發環境,在我們周邊其實是非常常見的,下面是我用swagger 來解決的方案。 從上圖可以看到這

C#開發小試手----小功能:C#讀取csv檔案——針對兩種不同需求的表頭

在練習過程中先後遇到了以下兩種需求:完整讀取CSV檔案,包括CSV檔案的表頭只讀取CSV檔案內容,表頭自定義新增針對需求1,程式碼如下://*********************************csv2dt----讀取csv表頭方案****************