linux之ssh命令


 ssh命令用於遠程登錄上Linux主機。

常用格式:ssh [-l login_name] [-p port] [user@]hostname
更詳細的可以用ssh -h查看。

不指定用戶:

ssh 192.168.0.11

指定用戶:

ssh -l root 192.168.0.11

ssh root@192.168.0.11


如果修改過ssh登錄端口的可以:

ssh -p 12333 192.168.0.11

ssh -l root -p 12333 216.230.230.114

ssh -p 12333 root@216.230.230.114

另外修改配置文件/etc/ssh/sshd_config,可以改ssh登錄端口和禁止root登錄。改端口可以防止被端口掃描。

編輯配置文件:

vim /etc/ssh/sshd_config

找到#Port 22,去掉注釋,修改成一個五位的端口:

Port 12333

找到#PermitRootLogin yes,去掉注釋,修改為:

PermitRootLogin no

重啟sshd服務:

service sshd restart

 

 

 

默認配置文件和SSH端口

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

/etc/ssh/ssh_config:OpenSSH客戶端配置文件;

~/.ssh/:用戶SSH配置目錄;

~/.ssh/authorized_keys:用戶公鑰(RSA或DSA);

/etc/nologin:如果存在這個文件,sshd會拒絕除root用戶外的其它用戶登錄;

/etc/hosts.allow和/etc/hosts.deny:定義tcp-wrapper執行的訪問控制列表;

SSH默認端口:22  

 

1、禁用OpenSSH服務器

工作站和筆記本電腦可以不用OpenSSH服務器,如果你不需要提供SSH遠程登錄和文件傳輸功能,可以禁用並刪除SSHD服務器,CentOS / RHEL / Fedora Linux用戶可以使用下面的yum命令禁用和刪除openssh-server:

# chkconfig sshd off

# yum erase openssh-server

Debian / Ubuntu Linux用戶可以使用下面的apt-get命令禁用和刪除openssh-server: 

# apt-get remove openssh-server

你可能需要更新你的iptables腳本,移除ssh例外規則,在CentOS / RHEL / Fedora下,打開etc/sysconfig/iptables和/etc/sysconfig/ip6tables文件,刪掉與ssh相關的例外規則,然后使用下面的命令重啟iptables:

# service iptables restart

# service ip6tables restart

 

2、只使用SSH v2

打開sshd_config配置文件,如果沒有就增加下面這一行設置:Protocol 2

 

3、限制用戶的SSH訪問

假設我們只要root,vivek和jerry用戶能通過SSH使用系統,向sshd_config配置文件中添加:AllowUsers root vivek jerry

另外,你還可以允許所有用戶通過SSH登錄,但拒絕一部分用戶,這時就需要向sshd_config配置文件中添加:DenyUsers saroj anjali foo

 

4、配置空閑超時退出時間間隔

sshd_config配置文件,確保有如下的配置項:

ClientAliveInterval 300

ClientAliveCountMax 0

上面的例子設置的空閑超時時間間隔是300秒,即5分鍾,過了這個時間后,空閑用戶將被自動踢出出去(可以理解為退出登錄/注銷)。

 

5、禁用.rhosts文件

不要讀取用戶的~/.rhosts和~/.shosts文件,使用下面的設置更新sshd_config配置文件:

IgnoreRhosts yes

 

6、禁用基於主機的身份驗證

HostbasedAuthentication no

 

7、禁用root通過SSH登錄

PermitRootLogin no

 

8、啟用警告橫幅

Banner /etc/issue

 

8、防火牆SSH端口:22

 

更新/etc/sysconfig/iptables(Red Hat及基於Red Hat的系統)文件,只接受來自192.168.1.0/24和202.54.1.5/29的連接,配置如下:

-A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT

-A RH-Firewall-1-INPUT -s 202.54.1.5/29 -m state --state NEW -p tcp --dport 22 -

9、使用TCP Wrapper

TCP Wrapper是一個基於主機的網絡ACL系統,用於過濾到互聯網的網絡訪問,OpenSSH支持TCP Wrapper,只需要更新你的/etc/hosts.allow文件,下面的例子表示僅允許來自192.168.1.2 和172.16.23.12的ssh訪問:

192.168.1.2 172.16.23.12

關於如何在Linux / Mac OS X 和UNIX類操作系統上安裝和配置TCP Wrapper,請訪問http://www.cyberciti.biz/faq/tcp-wrappers-hosts-allow-deny-tutorial/

10、禁用空密碼

你需要明確禁止密碼為空的用戶遠程登錄,使用下面的設置更新sshd_config配置文件:

PermitEmptyPasswords no

11、使用日志分析器

使用logwatch或logcheck讀取你的日志,這些工具讓你更容易閱讀日志內容,它們可以遍歷給定時間范圍內的日志,並生成明了的報告,請確保sshd_config配置文件中將LogLevel設置為INFO或DEBUG了。

LogLevel INFO

Other

#  開啟特權隔離

UsePrivilegeSeparation yes

# 防止使用不安全的home目錄和密鑰權限

StrictModes yes

# 開啟反向名稱檢查

VerifyReverseMapping yes

# 設置是否需要端口轉發

AllowTcpForwarding no

X11Forwarding no

#  指定是否允許密碼驗證,默認是yes

PasswordAuthentication no

 

最后警告大家,在重啟或重新載入修改之前,先使用下面的命令驗證一下sshd_config配置文件是否無誤:

# /usr/sbin/sshd -t


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM