author: hjb2722404
head: https://avatars1.githubusercontent.com/u/10215241?v=3&s=460
date: 2016-12-10
title: ssh修改登錄端口禁止密碼登錄并免密登錄
tags: : SSH linx遠程
category: tech-linux
status: publish
summary: 本文記錄在CentOS7中修改ssh登錄端口丑慎,免密登錄ssh以及ssh禁止口令登錄的方法竿裂,最后達到保證服務器安全的目的照弥。
1.修改ssh登錄端口
1.1 登錄遠程linux主機:
#linux:
$ ssh user@ip -p port
#windows git-bash:
# ssh user@ip port
1.2 修改ssh登錄端口
#以下操作在遠程linux主機中操作:
$ vi /etc/ssh/sshd_config
找到sshd_config
文件中如下選項并修改:
#Port 22
#修改為:
Port 60022 #這里修改為你想要設置的端口,以60022為例
1.3 修改防火墻配置
$ vi /etc/sysconfig/iptabels
添加以下規(guī)則
-A INPUT -m state --state NEW -m tcp -p tcp --dport 60022 -j ACCEPT
修改完成后这揣,刷新iptables并重啟ssh服務
$ systemctl restart iptables.service
$ systemctl restart sshd.service
此時如果再使用22端口進行ssh連接给赞,就會報錯,用60022端口連接才可以建立残邀。
2.免密登錄
SSH免密登錄利用了rsa密鑰對匹配的原理障涯,可以允許用戶從本地不用密碼就可以訪問到遠程主機唯蝶,讓我們來看看怎么做遗嗽。
2.1 本地生成密鑰對
# 在本機命令行控制臺輸入:
$ ssh-keygen
會有提示,連續(xù)按三次回車征字。
此時會在系統(tǒng)用戶的.ssh目錄下生成一對密鑰文件:私鑰文件id_rsa和公鑰文件id_rsa_pub匙姜。
2.2 將本地公鑰內(nèi)容追加到遠程主機的授權(quán)文件(authorized_keys)中
本地查看id_rsa_pub文件內(nèi)容:
$ cat ~/.ssh/id_rsa_pub
?
復制得到的公鑰字符串氮昧,在遠程服務器上編輯authorized_keys文件:
$ vi .ssh/authorized_keys
將剛剛得到的本地公鑰字符串添加到該文件的末尾(如果是新建的文件就直接添加)
編輯保存完成后,修改該文件的權(quán)限:
$chmod 600 .ssh/authorized_keys
2.3 修改ssh配置
編輯遠程服務器上的sshd_config
文件:
$vi /etc/ssh/sshd_config
找到如下選項并修改(通常情況下咪辱,前兩項默認為no椎组,地三項如果與此處不符寸癌,以此處為準):
#啟用密鑰驗證
RSAAuthentication yes
PubkeyAuthentication yes
#指定公鑰數(shù)據(jù)庫文件
AuthorsizedKeysFile.ssh/authorized_keys
編輯保存完成后,重啟ssh服務使得新配置生效:
$ systemctl restart sshd.service
此時仁堪,就可以通過ssh命令免除密碼直接登錄遠程主機了弦聂,在本地命令行控制臺輸入:
$ ssh user@ip -p 60022
就可以了(第一次需要輸入密碼氛什,以后就不用了)
3. 禁止SSH口令登錄
為了安全性更高,我們既然已經(jīng)使用了密鑰免密登錄捺檬,那么就可以直接禁止再使用口令來連接SSH遠程主機了堡纬。
3.1 更改ssh配置
編輯遠程服務器上的sshd_config
文件:
$vi /etc/ssh/sshd_config
找到如下選項并修改(通常情況下蒿秦,前兩項默認為no棍鳖,地三項如果與此處不符碗旅,以此處為準):
#PasswordAuthentication yes 改為
PasswordAuthentication no
編輯保存完成后镜悉,重啟ssh服務使得新配置生效侣肄,然后就無法使用口令來登錄ssh了
$ systemctl restart sshd.service