天天看點

Linux ssh 登陸

在之前的文章當中我們建立了Azure的Linux虛拟機,并且通過密碼的方式進行了遠端登陸。但是,由于在網絡傳輸當中進行密碼的輸入,畢竟不×××全,而且每次連接配接的時候需要輸入很長的機器名稱。使用起來着實比較麻煩。下面介紹一下如何在Azure的虛拟機上建立使用者,并且通過本地進行ssh 免密碼登陸。

連接配接到Azure的伺服器,使用adduser 進行使用者的建立。(之前有描述在linux上使用useradd和adduser添加使用者的差別。)

    root@ScottUbuntu:~# adduser sshuser      

在輸入密碼和确認密碼後,即完成了sshuser的添加。

進行添加後,我們可以從本地通過如下的指令進行登陸。

    ssh [email protected]      

系統會要求輸入使用者名和密碼。

輸入後進行了登陸,但是這樣的登陸方式實在不友善。那麼我們需要使用到ssh的登陸方式了。

首先我們需要在我們的系統上建立自己的公鑰和私鑰。公鑰以.pub結尾,一般用于我們上傳到伺服器端進行驗證。

進入到~/.ssh. 目錄。

cd ~/.ssh/

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

然後确定需要儲存的rsa的檔案名,并且輸入passphase (這裡強烈要求輸入,有的教程裡面直接讓大家在這步不輸入密碼,這個是極度不安全的方式)

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指的是你的伺服器位址。

成功的話,我們可以看到如下的提示。

3.png

由于剛才建立密鑰的時候輸入了密碼,我們需要使用ssh-add 将我們的密鑰儲存一次。

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

之後直接使用 ssh username@domianname 即可登陸。

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表示使用的密鑰。

最後效果如下: