远程操作服务器有多种连接方式,比如有ftp,telnet,但是其为明文传输,对于服务器来说还是有极大的隐患,个人最喜欢的还是SSH连接了。
SSH Secure Shell 安全外壳,传输加密,而且传输的数据经过压缩,所以传输效率更高。
配置文件:/etc/ssh/sshd_config
服务命令:service sshd {start|stop|restart|reload|force-reload|condrestart|try-restart|status}
下面是几条比较有用的配置:
passwordAuthentication yes/no //是否允许密码验证
PermitRootLogin no/yse //是否允许使用root账户
ListenAddress x.x.x.x 绑定了IP,也可相当于绑定了网卡
AllowUsers xx //仅允许xx用户登录,如果没有限定就注释掉
LoginGraceTime 30s //设置输入密码等待时间
ClientAliveInterval 10 //自动断线的秒数,不启用设为0
ClientAliveCountMax 3 //超时的次数,默认为3
还有就是ssh的连接方式有两种,一种是通过公钥和私钥来登录,另一种是通过密码来登录
1、无密码登录即通过公钥/私钥实现,对于公钥和私钥,相者是相对应的,对于公开的我们称为公钥,对于自己私有的称为私钥,且用其中的一个密钥加密,只能由另一个密钥来解,从反面说其中的一个密钥可以解密的,其数据肯定来自于另一个密钥加密的。所以我们配置过服务器ssh的都知道,我们要为其添加公钥信息,自己保存私钥信息。最重要的是私钥是决对不会在网络中传播的,所以和https请求密钥的交换方式有些不同,但原理都是一样的。
私钥各公钥保存在~/.ssh/id_rsa 和~/.ssh/id_rsa.pub中,authorized_keys保存着认证过的密钥。known hosts 保证着连接过的信息。
创建的命令:ssh-keygen -t rsa //如果没有.ssh可以自己创建
ssh-copy-id -i ~/.ssh/id_rsa.pub user@IP //将公钥发送给服务器,了可以手动加到authorized_keys最后面(cat id_rsa.pub >>authorized_keys)
找到以下内容,并去掉注释符”#“
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启服务后, 直接 ssh ip 或ssh user@ip 直接就可以连接了。
PS:如果出现连接问题,要检查一下authorized_key权限,sudo chmod 600 ~/.ssh/authorized_keys
ssh -v user@localhost 可以显示连接信息,用于查错,ssh -p 可以指定端口号。
tail /var/log/secure -n 20可以查看log信息
当然,你也可以通过ssh-agent 和ssh-add 来更高效的管理自己的密钥,你输入一次密码,那么你的专用密钥就会被高速缓存,下次就不用再输了。
ssh-agent 启动,ssh-add (~/.ssh/id_rsa)即可,
set | grep SSH_ 可以查看目前连接信息
二、Telnet
安装:yum -y install telnet-server
配置文件:/etc/xinetd.d/telnet
先将配置文件里的disable是否设为no, 否则是禁止连接。
命令:service xinetd {start|stop|status|restart|condrestart|reload}
配置防火墙,开启23端口--在/etc/sysconfig/iptalbles 中加入-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
修改端口:编辑 /etc/services 找到 telnet 那一行,改为 telnet xxxx/tcp telnet xxxx/udp ,重新配置一下防火墙,重启服务就行。
其它配置:
在/etc/xinetd.d/telnet中
only_from = 192.168.x.x //限制IP 192.168.1.0/24 表示特定网段
no_access=192.168.1.{100,101} //该网段中的100和101结尾的不同登录
access_times= 10:00-11:00 20:00-21:00//限制时间
instance = 2 //限制连接数
开放root登录
sudo mv /etc/securetty /etc/securetty.bak //去除securetty就能允许root登录
PS,最后补充一下SCP可以用来上传文件至服务器,基本命令就是:
scp localfilename user@ip:serverfile (注意冒号,后面是用户根目录下的目录)