1. 程式人生 > >遠端免密碼登入Openstack例項

遠端免密碼登入Openstack例項

背景

一般情況下,可以通過Openstack Dashboard的控制檯來訪問使用者建立的例項Instance,對於管理員來說,通過這種方法來訪問會覺得很不方便,因為每次都需要開啟瀏覽器來輸入網址,每次點選都需要等待響應,登入到例項後控制檯的響應也不是很及時且有卡頓。因此,本文介紹如何通過名稱空間來實現免密碼登入Openstack例項。

名稱空間

在Linux中,網路名稱空間可以被認為是隔離的擁有單獨網路棧(網絡卡、路由轉發表、iptables)的環境。網路名稱空間經常用來隔離網路裝置和服務,只有擁有同樣網路名稱空間的裝置,才能看到彼此。openstack中就採用名稱空間來實現不同網路的隔離。

  • 使用ip netns來檢視已經存在的名稱空間:

    $ ip netns
    qrouter-e94975e8-4688-4858-8f64-86a18eea81ed
    qdhcp-34ba192f-ceea-4c86-addc-a5d14c6a34a8

    qdhcp開頭的名字空間是dhcp伺服器使用的,qrouter開頭的則是router服務使用的。

  • 檢視openstack的網路:

    $ openstack network list
    +--------------------------------------+---------+--------------------------------------+
    | ID | Name | Subnets | +--------------------------------------+---------+--------------------------------------+ | 34ba192f-ceea-4c86-addc-a5d14c6a34a8 | private | 74dbc6f4-ae59-4af5-b941-1f4d04918607 | | fc9b502a-d472-46f5-8570-b0d3915759cf | public | de903618-fb31-412a-b46d-6ab593985b03 | +--------------------------------------+---------+--------------------------------------+

    可以看到private網路的dhcp伺服器對應的名稱空間qdhcp-34ba192f-ceea-4c86-addc-a5d14c6a34a8的名字中包含了private網路的ID。而本次測試的遠端例項就是建立在private網路下的。

  • 通過 ip netns exec namespace_id command 來在指定的網路名字空間中執行網路命令,記得加上sudo許可權,例如

    $ sudo ip netns exec qdhcp-34ba192f-ceea-4c86-addc-a5d14c6a34a8 ifconfig
    lo        Link encap:Local Loopback  
            inet addr:127.0.0.1  Mask:255.0.0.0
            inet6 addr: ::1/128 Scope:Host
            UP LOOPBACK RUNNING  MTU:65536  Metric:1
            RX packets:190 errors:0 dropped:0 overruns:0 frame:0
            TX packets:190 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1 
            RX bytes:65824 (65.8 KB)  TX bytes:65824 (65.8 KB)
    
    tap4e2f68bb-84 Link encap:Ethernet  HWaddr fa:16:3e:32:19:6b  
            inet addr:10.0.0.2  Bcast:10.0.0.63  Mask:255.255.255.192
            inet6 addr: fe80::f816:3eff:fe32:196b/64 Scope:Link
            UP BROADCAST RUNNING MULTICAST  MTU:1450  Metric:1
            RX packets:110210 errors:0 dropped:0 overruns:0 frame:0
            TX packets:107493 errors:0 dropped:0 overruns:0 carrier:0
            collisions:0 txqueuelen:1 
            RX bytes:21335986 (21.3 MB)  TX bytes:8426397 (8.4 MB)
  • ssh遠端登入例項:

    sudo ip netns exec namespace_id ssh [email protected]

    通過該命令來實現從控制節點通過ssh服務遠端訪問Openstack例項。

傳送公共祕鑰

要實現免密碼遠端登入例項,首先需要將控制節點root使用者的ssh的公共祕鑰傳送到遠端例項,也就是/root/.ssh/id_rsa.pub檔案中的內容,遠端例項收到後會將公共金鑰儲存到登入使用者的.ssh/authorized_keys檔案中,這樣下次登入遠端例項時就不再需要密碼。

  • 傳送公共金鑰

    $ sudo ip netns exec qdhcp-34ba192f-ceea-4c86-addc-a5d14c6a34a8 ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]10.0.0.9
    
    /usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    [email protected]10.0.0.9's password: 
    
    Number of key(s) added: 1
    
    Now try logging into the machine, with:   "ssh '[email protected]'"
    and check to make sure that only the key(s) you wanted were added.

    注意:傳送的公共祕鑰必須是控制節點root使用者的,因為在進入名稱空間執行命令時需要加上sudo許可權,而sudo是用來以其他身份來執行命令的,預設的身份為root,這樣在ssh登入遠端例項時是以控制節點的root使用者來登入遠端例項的openstack使用者,因此需要將控制節點root使用者的公共金鑰傳送給遠端例項,root使用者的公共金鑰的路徑是/root/.ssh/id_rsa.pub

  • 檢視遠端例項的authorized_keys

    $ vi ~/.ssh/authorized_keys
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjXQQUtIcLLcvBXVudZDBbQFK8BT/hB67oOrs792sfCuMhxvxvFRbma5UmnxwxOhXUIRjdz4u7tWhR3VVhqqnlHGDKOQVje/t2QtTlXXcBI3kGnc0Epem2NRMgRKp/h/Y1EOwtPNHRDVfr8C2znilXpWW1ueigHuJF4TWT7vEjgbApmWhopZcOXKbLkSu5dxLGUO3TzGqkASgpLG2XyuUJVqoREr5wbAZytq7R2p5KCxUZ6T7sDUQG+xmFPsfPg3MUHQmatTvtSf+mImotTkNSqOp2Itct9afX7SPkRncrXVWJ0qutbrRrkjRJm1l/sCjFBOD0x6txcFBX30nPvkDx root@controller
  • 檢視控制節點root使用者公共金鑰

    
    # vi /root/.ssh/id_rsa.pub
    
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCjXQQUtIcLLcvBXVudZDBbQFK8BT/hB67oOrs792sfCuMhxvxvFRbma5UmnxwxOhXUIRjdz4u7tWhR3VVhqqnlHGDKOQVje/t2QtTlXXcBI3kGnc0Epem2NRMgRKp/h/Y1EOwtPNHRDVfr8C2znilXpWW1ueigHuJF4TWT7vEjgbApmWhopZcOXKbLkSu5dxLGUO3TzGqkASgpLG2XyuUJVqoREr5wbAZytq7R2p5KCxUZ6T7sDUQG+xmFPsfPg3MUHQmatTvtSf+mImotTkNSqOp2Itct9afX7SPkRncrXVWJ0qutbrRrkjRJm1l/sCjFBOD0x6txcFBX30nPvkDx root@controller

    可以看到,兩者是一樣的,說明控制節點的root使用者已經被授權通過公共金鑰來訪問遠端例項。

免密碼登入

  • 免密碼登入遠端例項

    $ sudo ip netns exec qdhcp-34ba192f-ceea-4c86-addc-a5d14c6a34a8 ssh [email protected]10.0.0.9

    這樣就通過ssh服務免密碼遠端登入Openstack例項,而不需要通過Dashboard的控制檯來登入例項。

相關推薦

遠端密碼登入Openstack例項

背景 名稱空間 免密碼登入 背景 一般情況下,可以通過Openstack Dashboard的控制檯來訪問使用者建立的例項Instance,對於管理員來說,通過這種方法來訪問會覺得很不方便,因為每次都需要開啟瀏覽器來輸入網址,每次點選都需

Linux配置DMZ機器遠端密碼登入

問題 當我們環境中伺服器數量較多,特別是對於我們生產環境下,當然我們在伺服器數量較多時,一般都會有一臺DMZ的可信機器,然後通過DMZ機器SSH遠端到各個伺服器上進行操作,但是每次SSH都要輸入使用者名稱,密碼等資訊,比較繁瑣,特別是對於服務運維很不方便,這時候我們就可以通過設定各個服務

【Linux】Linux作業系統——配置ssh密碼登入遠端伺服器

ssh免密碼登入遠端伺服器 最簡單的操作 ssh免密碼登入的原理是把本地電腦的公鑰放在宿主機,然後使用本地電腦的私鑰去認證。 在本地電腦執行 /usr/bin/ssh-keygen -t rsa,安裝提示一直回車即可,最後會看到~/.ssh目錄下多了幾個檔案id_rsa (

jenkins釋出專案到遠端主機上,配置兩臺linux如何使用SSH密碼登入

一、首先要配置兩臺linux如何使用SSH免密碼登入,這樣指令碼執行scp命令以及遠端執行指令碼都不需要輸入密碼: A為本地主機(即用於控制其他主機的機器,jenkins伺服器) ; B為遠端主機(即被控制的機器Server,jenkins

Mac設定密碼登入Centos伺服器

前言:沒有密碼還是美滋滋 step1:在Mac終端生成公鑰和私鑰 cd ~/.ssh ssh-keygen -t rsa 之後回車三次,ls檢視: 多了id_rsa 和id_rsa.pub兩個檔案 step2:傳送公鑰到CentOS伺服器端 scp id_rsa.p

Centos 解決SSH 密碼登入 以及Crontab製作定時SSH自動登入和關閉的指令碼

一、SSH免密碼登入 假設要登入的機器為192.168.1.100,當前登入的機器為192.168.1.101。 首先在101的機器上生成金鑰(如果已經生成可以跳過): $ ssh-keygen -t rsa一路回車即可。 然後在將生成的公鑰複製到機器100上的~/.ssh/authorized_ke

解決:centos配置ssh密碼登入後仍要輸入密碼

轉自https://www.jb51.net/article/121180.htm   第一步:在本機中建立祕鑰 1、執行命令:ssh-keygen -t rsa  2、之後一路回車就行啦;會在~(home)目錄下中產生.ssh(隱藏)資料夾;

ssh密碼登入linux伺服器

1、環境:win10、win10裝有的git、linux伺服器 2、開啟git,檢視win10本機的公鑰 $ cat ~/.ssh/id_rsa.pub 3、開啟伺服器,建立.ssh目錄,進入 [[email protected] ~]# mkdir ~/.ssh/ [

SSH密碼登入配置.md

在客戶機生成私鑰和公鑰後,將公鑰放在服務機,後續客戶機通過ssh遠端登入服務機時,將不再提示輸入服務機登入密碼,即可實現免密碼登入。 這種“公鑰登入”方式,可用在伺服器間,也可以用在個人電腦(mac\windows\linux),從而實現免密碼遠端登入伺服器;

linux中的密碼登入

假設現在你有了一臺主機器main: 192.168.0.1和一臺從機器clinet:192.168.0.2; 首先 cd  ~/.shh/  目錄下,有一個 known_hosts檔案; 然後輸入:[[email protected] .ssh]# ssh-ke

CentOS ssh密碼登入

    在搭建Hadoop環境的時候,需要設定一下免密碼登入。     之前做過一次免密是成功的,最近又做了一次,居然不成功。。。很鬱悶,很納悶,     下面把我的操作步驟和經驗分享一下: 系

【轉】ssh密碼登入的原理

工作第一天,就需要登入各種伺服器,免密碼登入無疑能大大的提高工作效率。以前只知道配置,今天瞭解了下原理。 免密碼登入原理   圖解,server A免登入到server B: 1.在A上生成公鑰私鑰。 2.將公鑰拷貝給server B,要重新命名成authorized_keys(從英文名就

非對稱加密演算法:實現ssh密碼登入

**描述:利用非對稱加密演算法,實現兩臺主機之間可以免密碼直接登入 ,如下圖:** 整個實驗的原理如下圖: 具體步驟如下: 1、先準備好實驗需要的環境(兩臺虛擬機器–A:192.168.72.73,B:192.168.72.23),此時,我們遠端登入主機B,

SSH密碼登入設定

  兩臺Linux主機需要從其中一臺ssh至另外一臺需要手動輸入密碼,通過以下設定免密碼登入   生成祕鑰 ssh-keygen -t rsa   把祕鑰複製至需要免密登入的主機,第一次拷貝需要輸入一次密碼 ssh-copy-id -i ~/.ssh/id_rsa.pub [emai

Linux密碼登入設定 ssh-keygen

linux系統配置免密碼的方式: 1:ssh-keygen -t rsa 生成金鑰 [[email protected] ~]# ssh-keygen -t  rsa Generating public/private rsa key pair.

ansible生成公鑰,ssh客戶機密碼登入

環境 192.168.182.142(ansible主機) 192.168.182.143(客戶機) ①在192.168.182.142主機上生成公鑰 1,生成公鑰 檢視ls /root/.ssh/是否有祕鑰 有的話rm -rf /root/.ssh/* 最好刪除之前備份。 生成

centos 7 ssh密碼登入(補充1.6 SSH登入

參考(十分詳細):http://blog.csdn.net/newstruts/article/details/46424191 目的 在搭建Linux叢集服務的時候,主伺服器需要啟動從伺服器的服務,如果通過手動啟動,叢集內伺服器幾臺還好,要是像阿里1000臺

(一)git生成ssh-key,實現密碼登入github

一 、 切到當前使用者的根目錄,右鍵選擇git bash,設定Git的user name和email: git config --global user.name "這裡換上你的使用者名稱" git config --global user.email "這裡換上你的郵箱"

ssh 密碼登入

ssh免密碼登入的原理: serverA 免密碼登入到 serverB 機器A 向 機器B 進行免密碼登陸 step1:  在機器A中生成 私鑰和公鑰: ssh-keygen -t rsa 此時在 ~/.ssh/ 目錄下生成了公鑰(id_rsa.pub

CentOS 配置叢集機器之間SSH密碼登入

特別提示:不能使用root使用者 SSH 為 Secure Shell 的縮寫,由 IETF 的網路小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠端登入會話和其他網路服務提供安全