ssh远程连接命令,linux文件服务器搭建
一. SSH服务
什么是ssh为远程登录和其他网络服务提供安全性的协议
提供字符接口远程登录管理,默认使用22号端口,以密文形式通过网络传输数据
shh服务验证类型基于密码验证知道服务帐户的密码,并通过ssh连接到帐户
必须基于私钥认证为用户生成私钥对,通过shh连接后,客户端向发出请求,用客户端私钥进行验证,服务器收到后,在用户目录下查找公钥,进行比对,匹配
安装SSH服务官方网站: http://www.openssh.com
服务名称: sshd
服务器端主程序:/usr/sbin/sshd
客户端:/usr/bin/ssh
服务器端主配置文件:/etc/ssh/sshd_config
客户端配置文件:/etc/ssh/ssh_config
配置openssh服务器端sshd服务器的配置文件缺省位于/etc/ssh/sshd_config中
端口22监听的端口(缺省22 )也可以使用多个端口。 也就是说,重用名为Port的设置项目。 #例如,想要将sshd端口开放到22和222时,添加以下内容
端口22
端口222
#然后重新启动sshd就好了。 建议将端口number更改为其他端口。 防止他人暴力解读。
监听器地址0.0.0.0监听的IP地址(缺省为监听所有IP )设置sshd服务器绑定的IP地址,0.0.0.0监听所有地址该值可以写入本地IP地址和所有地址中
SyslogFacility AUTHPRIV当有人使用SSH登录系统时,SSH会记录信息。 此信息为AUTHPRIV类型。 shd服务日志存储在/var/log/secure中
为什么没有在sshd配置文件中指定日志,但日志却保存在/var/log/secure中?
# vim /etc/rsyslog.conf #审核
LogLevel INFO记录级别! INFO水平以上。 禁用usednsnodns反向分析。 通常,为了确定客户机源合法,会使用DNS反向查找客户机的主机名,但如果要通过内部网进行互连,则设置为no会加快连接速度。 PermitRootLogin no禁止限制ROOT用户使用PermitEmptyPasswords no禁止密码为空的用户远程登录LoginGraceTime 2m登录验证流程的时间。 默认值为2分钟。 这意味着,如果在多长时间内无法连接到ssh服务器,将强制断开连接。 没有单位时的默认时间是秒。 实际MaxAuthTries 6限制用户登录验证过程的最大重试次数DenyUsers zhangsan lisi拒绝XX用户的远程登录系统,其他为AllowUsers漫不经心的招牌admin @ 61.23 . 管理员只能在主机61.23.24.25上登录。 其他包括: PasswordAuthentication yes是否启用密码验证,PubkeyAuthentication yes是否启用密钥对验证,authorizedkeysfile.ssh/authord 请勿同时使用AllowUsers和DenyUsers
rintLastLog yes 显示上次登入的信息,如上次登入的时间、地点等等,默认是yesPrintMotd yes 登入后是否显示出一些信息,即打印出 /etc/motd这个文档的内容。
例如给sshd服务添加一些警告信息
修改/etc/motd
# cat /etc/motd
# echo '欢迎进入192.168.10.30服务器,注意:“禁止私自”使用“rm -rf”命令,如使用请联经理!请配合!'> /etc/motd
测试:连接ssh,显示结果
配置文件sshd_config修改后,重启sshd服务
#systemctl restart sshd
使用SSH客户端程序方式1: ssh 用户名@服务器地址
方式2: ssh -l 用户名 服务器地址
方式3: ssh 服务器地址(缺省时会尝试以当前的本地用户名进行登录)
使用scp命令远程复制文件/目录
方式1: scp 用户名@服务器地址:源文件 目标路径
方式2: scp 本地文件 用户名@服务器地址:目标路径
使用图形客户端软件xshell
安装lrzsz 可以在Linux 和 windows直接相互传文件,
rz命令从本地上传文件到服务器
sz命令件从服务器下载文件到本地
sshd服务防止暴力破解
方法1:配置安全的sshd服务
密码复杂修改端口不允许root登录,添加普通账号,授予root权限不允许密码登录,用秘钥登录
方法2:秘钥认证sshd认证
创建秘钥对
ssh-keygen -t rsa
Id_rsa是私钥文件
Id_rsa.pub是公钥
公钥文件上传服务器
ssh-copy-id -i root@192.168.1.1
输入密码
ll -d /root/.ssh
ll /root/.ssh
客户端秘钥对验证
ssh root@192.168.1.1
sudo -i
whoami
Xshell使用密钥对验证连接远程主机192.168.1.1
将私钥文件拷贝到windows主机上,执行sz命令(id_rsa)由lrzsz软件包提供
在Xshell新建连接192.168.1.1,在身份验证选择 “Public key”,通过浏览按钮导入拷贝私钥
方法3:通过pam模块来防止暴力破解ssh
# vim /etc/pam.d/sshd
在第一行下面添加一行:
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=1200
#尝试登陆失败超过3次,普通用户600秒解锁,root用户1200秒解锁
手动解除锁定:
查看某一用户错误登陆次数:
#pam_tally2 --user 用户名
例如,查看zhangsan用户的错误登陆次数:
#pam_tally2 --user zhangsan
清空某一用户错误登陆次数:
#pam_tally2 --user 用户名 --reset
例如,清空zhangsan用户的错误登陆次数,
#pam_tally2 --user zhangsan --reset
在远程计算机上运行命令
输出重定向至本地文件:
#ssh user@host ‘command1 ; command2’ > log.local //单引号
例如:ssh root@192.168.36.128 ‘hostname;ifconfig’ > log.local
输出重定向至远程文件:
#ssh user@host ‘command1 ; command2 > log.remote’ //单引号
例如:ssh root@192.168.36.128 ‘hostname;ifconfig > log.remote’