Hong's Blog

View on GitHub

上一頁

當 ssh 連線失敗,原因可能是由於未安裝 openssh-server

ssh: connect to host 192.168.x.xx port 22: Connection refused

在 Linux 伺服器端安裝 openssh-server

$ sudo apt-get install openssh-server

安裝完畢後,在相同網域之下即可使用 ssh 連線

若不想要輸入密碼登入伺服器則需要使用金鑰

要在 Linux 上產生 SSH 登入用的金鑰,可以使用 ssh-keygen 這個指令。在建立金鑰之前,要先建立 ~/.ssh 這個目錄,並設定正確的權限

$ mkdir -p ~/.ssh
$ chmod 700 ~/.ssh

在客戶端產生金鑰

$ ssh-keygen

在產生金鑰的過程中,會詢問一些問題,對於一般的使用者而言,全部都使用預設值(不須輸入直接按下 Enter 鍵)即可。

將產生的 id_rsa.pub 檔案內容這個公開金鑰複製到 Linux 伺服器上的 ~/.ssh/authorized_keys 檔案中

之後就可以不用打密碼登入伺服器了

公開金鑰範例:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCw7cGMjov3PZ5uDv6WgCVfdniKkRfawaMeAsxEoHjgcV1XqPbIM8YsW1eIaPTO4+pa/thUuRj/EalIGiV7Du+IemuVbewAlB/nZNtkPD8uFCXdEas6mn74dSrJuuSJcT2fjI9vnyWjd+YXdI6cZXqdB78K6ZSSNuCsHnSVhjL4KbLU5wQqEv8g7wHGG82lPdP7VISp2WIknszO0otHby3xJp2I3HBqQJ7BmrsFrRkxtcDyfpK7aMdZCJAfGKJauxmBF0JfsqFV0HgXuMnf8NRptywV/4HuVEuUpfJl+8O3dZJoP7DPxj5teRXoIp4hU9DxrjsqTlWceLhfFKjny5dn75x8DZrbP4qwjnwoFDLKAwYmA04Izb17E4/7BUg23YmYDhBkJ7c0LcMUN6NH5ElJuBn28LIwMOFR95kSpJpOZWbJPIn9xaB5vaNYZxA88M06juIsmZ2wC+OUoUbepOiETXI1uANbC6pqBcWLmRjaDo+Bu1CLqtE2tRhUWzlxalM= hong@hong-X556UQK

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDGW6ZnVwQzbk30fZ37fQCFW3+xlcwqQMbSoexddB452tPt2o+yc9MJ0ZWHDEu/Ke4LJ6mkRFUghBccggzvRC2tPv5+XqSP1SQKJINrhewKdvpSm57bljTPQFb1v9yW/M0QlHFFhHSDGfBJTf5NBAXa7wKbzZIZVA8I1xlh31wZo9bnLrm9b9xThvsRrNm+RHiTUIt1PdWPSoq1f9/k1wNmgmupBdj5qGENEunVZSFKKo2DTTC6/K2HLfsvNoWrcsH30NtsR4uQk4H/I7gGxWeXlzvKdTMrGqu0dHmZBML/g/VBHBOeavBzWkDUe0LE5W+HY2oXbZ6sHHCE+jRX2xMiX/gK6YnUHA0TdyEMGjdeZjkqTlT6Z6+xYXCasU9rhdIIhxKPhvSuGqSls2CW+uiYh4c2UUt0fChYmz3VRrBD1b19TmlEg9lzuzyyuZal6ffp9fTMM3Ru7QzIBTbD4PhQisT0DicfQGMwe/o8Hb2zvaoVlvySEQBu5JmIlm/uar0= accton@accton-SB101-UR

使用 Windows 設定安裝 OpenSSH

若要使用 PowerShell 安裝 OpenSSH,請以系統管理員身分執行 PowerShell。 若要確認 OpenSSH 可供使用,請執行下列 Cmdlet:

$ Get-WindowsCapability -Online ? Name -like ‘OpenSSH*’

如果尚未安裝,這應該會傳回下列輸出:

Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent

Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

然後,視需要安裝伺服器或用戶端元件:

#Install the OpenSSH Client
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

#Install the OpenSSH Server
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

這兩個都應該會傳回下列輸出:

Path :
Online : True
RestartNeeded : False

#啟動及設定 OpenSSH 伺服器
#Start the sshd service
$ Start-Service sshd

#OPTIONAL but recommended:
$ Set-Service -Name sshd -StartupType ‘Automatic’

#Confirm the firewall rule is configured. It should be created automatically by setup.
$ Get-NetFirewallRule -Name ssh

#There should be a firewall rule named “OpenSSH-Server-In-TCP”, which should be enabled
#If the firewall does not exist, create one
$ New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

之後便可以使用 ssh 連線