SSH鏈接遠程終端實用教程

微信公衆號「後端進階」,專一後端技術分享:Java、Golang、WEB框架、分佈式中間件、服務治理等等。
老司機傾囊相授,帶你一路進階,來不及解釋了快上車!git

做爲後端開發者,不免要常常與服務器打交道,部署項目,查看日誌,排查問題等等,除了開發工做,其他時間基本都在終端上,那麼你是怎麼鏈接上服務器的呢?直接粗暴地用帳號密碼?可是直接用帳號密碼鏈接服務器存在安全風險,由於服務器有多人擁有權限,在密碼拷貝給各個成員過程當中,很是容易暴露出去,因此一般咱們是經過 SSH 來鏈接遠程終端。vim

SHH 可分爲客戶端和服務端,服務端是一個守護進程,通常是 sshd 進程,在後臺運行並響應來自客戶端的請求,提供了對遠程請求的處理,通常包括公共密鑰認證、密鑰交換、對稱密鑰加密和非安全鏈接;客戶端通常是 ssh 進程,另外還包含 scp、slogin、sftp 等其餘進程。後端

這篇文章主要講如何 ssh 鏈接遠程終端,以此記錄一下整個配置過程。安全

客戶端生成公鑰密鑰

用 git 命令 ssh-keygen -t rsa ,會在 ~/ 下生成一個 .ssh 的隱藏文件夾,裏面包含 id_rsa 密鑰和 id_rsa.pub 公鑰,等下把公鑰添加到服務器。bash

下載 ssh,配置 ssh,啓動 sshd

$ yum install openssh-server -y
複製代碼

OpenSSH 的主配置文件:/etc/ssh/sshd_config服務器

如下是一些經常使用設置:微信

# 設置SSH的端口號是22(默認端口號爲22)
Port 22

# 使用ssh驗證登錄
RSAAuthentication yes 
pubkeyAuthentication yes

# 公鑰文件路徑
AuthorizedKeysFile	.ssh/authorized_keys

# 禁止密碼登錄
PasswordAuthentication no


複製代碼

開啓 sshd:網絡

$ systemctl start sshd.service #啓動
$ systemctl stop sshd.service #中止
$ systemctl restart sshd.service #重啓 
複製代碼

查看進程:框架

$ ps -ef | grep sshd
複製代碼

服務端建立用戶,添加公鑰

在 ssh 啓動後,會在 ~/ 下建立一個 .ssh 隱藏文件夾,裏面有一個 authorized_keys 文件,能夠在這個文件添加須要鏈接的服務器的客戶端的公鑰,可是通常不會這麼作,這會有安全隱患,由於在 root 目錄下的公鑰的客戶端登錄到服務器後會直接取得 root 權限,因此我會建立一個用戶,在用戶全部在目錄下添加 .ssh 目錄,在 .ssh 目錄下建立 authorized_keys 文件,最後把本地公鑰添加到 authorized_keys 文件中:ssh

  • 建立用戶:
$ adduser chenghui.zhang
複製代碼

若是建立 .ssh 目錄和 authorized_keys 文件的時候是用 root 建立的,那麼須要將其改爲 chenghui.zhang 的用戶權限:

chown chenghui.zhang|chenghui.zhang /home/chenghui.zhang/.ssh
chown chenghui.zhang|chenghui.zhang /home/chenghui.zhang/.ssh/authorized_keys
複製代碼

以下:

ssh

客戶端鏈接終端配置

在客戶端 ~/.ssh 裏面建立一個 config 文件:

$ touch config
複製代碼

編輯:

$ sudo vim config
複製代碼

添加內容:

# 測試服務器
Host test
    HostName xxx.xx.xxx.xxx #服務器ip地址
    Port 22 #服務器配置的ssh端口號
    User chenghui.zhang #在服務器的用戶名(對應用戶文件夾名字)
複製代碼

而後在終端( macOS 推薦使用 iTerm2 )輸入:

$ ssh test
複製代碼

到這裏,就能夠登上服務器了,但如今你還沒得到 root 權限。

服務端設置用戶獲取 root 權限密碼

接下來就是給用戶配置須要輸入密碼獲取 root 權限的操做,在服務器 root 權限下給 chenghui.zhang 用戶添加密碼:

$ passwd chenghui.zhang
複製代碼

而後就是輸入密碼。

這時還須要在 /etc/sudoers 給該用戶臨時提高權限( sudo 就是咱們經常使用的命令,僅須要輸入當前用戶密碼,即可以完成權限的臨時提高)

$ sudo vim /etc/sudoers
複製代碼

添加下面內容:

# 格式爲(用戶名 網絡中的主機=(執行命令的目標用戶) 執行的命令範圍)
$ chenghui.zhang    ALL=(ALL)       ALL
複製代碼

這時候退出保存可能會遇到文件只讀狀態,咱們還須要給該文件更改權限:

$ chmod 700 /etc/sudoers
複製代碼

在登錄服務器以後,須要取得臨時 root 權限:

$ sudo su -
複製代碼

提示你輸入密碼,輸入剛剛的密碼,這時候你就擁有了root權限了。爲安全起見,記得操做完後切換回用戶目錄:

$ su - chenghui.zhang
複製代碼

公衆號「後端進階」,專一後端技術分享!
相關文章
相關標籤/搜索