Linux ssh 登錄

在以前的文章當中咱們建立了Azure的Linux虛擬機,而且經過密碼的方式進行了遠程登錄。可是,因爲在網絡傳輸當中進行密碼的輸入,畢竟不×××全,並且每次鏈接的時候須要輸入很長的機器名稱。使用起來着實比較麻煩。下面介紹一下如何在Azure的虛擬機上建立用戶,而且經過本地進行ssh 免密碼登錄。javascript

鏈接到Azure的服務器,使用adduser 進行用戶的建立。(以前有描述在linux上使用useradd和adduser添加用戶的區別。)java

    root@ScottUbuntu:~# adduser sshuser

在輸入密碼和確認密碼後,即完成了sshuser的添加。
進行添加後,咱們能夠從本地經過以下的命令進行登錄。linux

    ssh sshuser@yourdomain.chinacloudapp.cn

系統會要求輸入用戶名和密碼。ubuntu

1240

輸入後進行了登錄,可是這樣的登錄方式實在不方便。那麼咱們須要使用到ssh的登錄方式了。vim

首先咱們須要在咱們的系統上建立本身的公鑰和私鑰。公鑰以.pub結尾,通常用於咱們上傳到服務器端進行驗證。安全

進入到~/.ssh. 目錄。ruby

cd ~/.ssh/

ssh-keygen -t rsa -b 2048 -C "sshuser@yourmail"

而後肯定須要保存的rsa的文件名,而且輸入passphase (這裏強烈要求輸入,有的教程裏面直接讓你們在這步不輸入密碼,這個是極度不安全的方式)bash

1240

2.png服務器

這個時候咱們會在目錄下生成2個文件,以下。網絡

-rw------- 1 scottxiao staff 1.7K Dec 4 01:33 sshuser
-rw-r--r-- 1 scottxiao staff 418B Dec 4 01:33 sshuser.pub

使用ssh-copy-i 將咱們的pub 公鑰傳到服務器上。

ssh-copy-id -i sshuser.pub user@yourdomain

注意:這裏的user name 指的是你登錄的用戶名,your domian指的是你的服務器地址。

成功的話,咱們能夠看到以下的提示。

1240

3.png

因爲剛纔建立密鑰的時候輸入了密碼,咱們須要使用ssh-add 將咱們的密鑰保存一次。

  ssh-add sshuser_rsa    Enter passphrase for sshuser_rsa: 
    Identity added: sshuser_rsa (sshuser_rsa)

以後直接使用 ssh username@domianname 便可登錄。

1240

4.png

可是每次要記很長的domain名稱,仍是很不方便,那麼咱們一塊兒來建立並配置SSH文件來解決這個問題。

touch ~/.ssh/config
vim ~/.ssh/config

配置文件以下:

# Azure KeysHost sshuser
  Hostname scottubuntu.chinacloudapp.cn
  User sshuser# ./Azure Keys# Default SettingsHost *
  PubkeyAuthentication=yes
  IdentitiesOnly=yes
  ServerAliveInterval=60
  ServerAliveCountMax=30
  ControlMaster auto
  ControlPersist 4h
  IdentityFile ~/.ssh/sshuser_rsa

注: Host 表示你以後想要使用的服務器登錄簡寫, hostname表示服務器IP或者DNS,user 表示要登錄的用戶名, IdentifyFile表示使用的密鑰。
最後效果以下:

1240

5.png


附上ssh-keygen 的說明
命令解釋
ssh-keygen= 用於建立密鑰的程序
-t rsa= 要建立的密鑰類型,即 [RSA 格式](https://en.wikipedia.org/wiki/RSA_(cryptosystem)-b 2048 = 密鑰的位數-C "ahmet@fedoraVMAzure" = 追加到公鑰文件末尾以便於識別的註釋。一般以電子郵件做爲註釋,但也可使用任何最適合基礎結構的事物。

相關文章
相關標籤/搜索