天天看點

使用key登陸管理linux伺服器/免密碼登陸linux伺服器

ssh除了密碼驗證外,還有一種比較常用的驗證方式:key;他的好處除了安全外,還可以實作linux之間的免密碼登陸 ,友善管理或者批量維護。

本文介紹一下windows/linux下如何配置key免密碼登陸linux伺服器

<code>01</code>

<code>[root@a ~]</code><code># ssh-keygen -t rsa</code>

<code>02</code>

<code>03</code>

<code>generating public/private rsa key pair.</code>

<code>04</code>

<code>05</code>

<code>enter </code><code>file</code> <code>in</code> <code>which</code> <code>to save the key (/root/.</code><code>ssh</code><code>/id_rsa):</code>

<code>06</code>

<code>//key儲存的路徑和檔案名</code>

<code>07</code>

<code>08</code>

<code>enter passphrase (empty </code><code>for</code> <code>no passphrase):</code>

<code>09</code>

<code>10</code>

<code>//key的密碼,免密碼登陸的話留白</code>

<code>11</code>

<code>12</code>

<code>enter same passphrase again:</code>

<code>13</code>

<code>14</code>

<code>your identification has been saved </code><code>in</code> <code>/root/.</code><code>ssh</code><code>/id_rsa</code>

<code>15</code>

<code>16</code>

<code>//生成了私鑰/root.</code><code>ssh</code><code>/id_rsa</code>

<code>17</code>

<code>18</code>

<code>your public key has been saved </code><code>in</code> <code>/root/.</code><code>ssh</code><code>/id_rsa.pub</code>

<code>19</code>

<code>20</code>

<code>//生成了公鑰 /root/.</code><code>ssh</code><code>/id_rsa.pub</code>

<code>21</code>

<code>22</code>

<code>the key fingerprint is:</code>

<code>23</code>

<code>24</code>

<code>82:8c:2c:52:06:c6:f3:c4:1c:1c:35:b7:</code><code>cd</code><code>:5b:42:a2 root@a</code>

<code>25</code>

<code>26</code>

<code>[root@a ~]</code><code># ls /root/.ssh/ //檢視一下目錄,已經有了這兩個檔案</code>

<code>27</code>

<code>28</code>

<code>authorized_keys id_rsa id_rsa.pub known_hosts</code>

<code>29</code>

<code>30</code>

<code>[root@a ~]</code><code>#</code>

檢視一下伺服器ssh服務公鑰存放的路徑

<code>1</code>

<code>[root@a ~]</code><code># cat /etc/ssh/sshd_config |grep authorizedkeysfile</code>

<code>2</code>

<code>3</code>

<code>#authorizedkeysfile .ssh/authorized_keys</code>

預設伺服器儲存公鑰的位置是.ssh/authorizedkeysfile

是以需要将生成的公鑰檔案通過scp或者任何方法拷貝到你需要遠端登入的伺服器的這個檔案中

<code>[root@b ~]</code><code># cd .ssh/</code>

<code>[root@b .</code><code>ssh</code><code>]</code><code># cat id_rsa.pub &gt;authorized_keys</code>

<code>//伺服器本地</code><code>ssh</code><code>用戶端預設讀取的私鑰路徑已經包含了/.</code><code>ssh</code><code>/id_rsa</code>

<code>[root@a .</code><code>ssh</code><code>]</code><code># cat /etc/ssh/ssh_config |grep identityfile</code>

<code># identityfile ~/.ssh/identity</code>

<code># identityfile ~/.ssh/id_rsa</code>

<code># identityfile ~/.ssh/id_dsa</code>

至此你可以直接從a 執行指令ssh ipb

登入到伺服器b了,就這麼簡單。

有一種簡單的方法:使用指令ssh-copy-id 直接将本機的key加入到對方伺服器的驗證檔案中

<code>[root@a .</code><code>ssh</code><code>]</code><code># ssh-copy-id</code>

<code>usage: /usr/bin/</code><code>ssh</code><code>-copy-</code><code>id</code> <code>[-i [identity_file]] [user@]machine</code>

<code>[root@a .</code><code>ssh</code><code>]</code><code># ssh-copy-id -i /root/.ssh/id_rsa root@ipb</code>

<code>the authenticity of host </code><code>'ipb (ipb)'</code> <code>can't be established.</code>

<code>rsa key fingerprint is 17:21:32:02:da:3b:a1:d1:a2:69:12:36:a2:d7:59:ad.</code>

<code>are you sure you want to </code><code>continue</code> <code>connecting (</code><code>yes</code><code>/no)? </code><code>yes</code>

<code>root@ipb's password:</code>

<code>now try logging into the machine, with </code><code>"ssh 'root@ipb'"</code><code>, and check </code><code>in</code><code>:</code>

<code>.</code><code>ssh</code><code>/authorized_keys</code>

<code>[root@a ~]</code><code># ssh ipb</code>

<code>last login: sun dec 15 19:33:07 2013 from ipa</code>

<code>[root@b ~]</code><code>#</code>

這樣執行之後,就可以直接登陸伺服器了。

上面都是通過linux的ssh用戶端來連接配接,如果通過本地來使用key登陸的話方法大同小異;

将私鑰id_rsa下載下傳到本地,然後導入到用戶端的密鑰認證配置的地方即可;

以securecrt為例,配置位置如下圖選擇下載下傳下來的私鑰檔案即可。

使用key登陸管理linux伺服器/免密碼登陸linux伺服器

繼續閱讀