ssh远程控制
Posted ydqq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh远程控制相关的知识,希望对你有一定的参考价值。
什么是SSH
ssh是一种网络协议,用于计算机之间的加密登录
配置OpenSSH 服务端
OpenSSH服务器由 openssh , openssh-server等软件包提供(默认已安装),并已添加为标准系统服务。
配置文件:
/etc/ssh/sshd_config
服务监听选项:
port 22 //监控端口为22(默认)
protocol 2 //使用ssh v2协议
listenAddress 192.168.1.155 //监听地址为192.1681.55
UseDNS no //禁用DNS反向解析
#service sshd reload //重新载入
用户登录控制:
sshd默认允许root登录,但是在internet中为了安全应该禁止root登录,先用普通用户登录到服务器,再su 到root权限。
sshd服务用户登录限制:
1). 禁止root用户,或密码为空的用户登录
2). 限制登录验证时长(默认为2分钟)
3). 限制用户重复登录次数。
#vim /etc/ssh/sshd_config
PermitRootLogin on //禁止root用户登录
PermitEmptyPasswords on //禁止空密码用户登录
LoginGraceTime 2m //用户登录验证时长
MaxAuthTries 6 //最大重复登录次数
# service sshd reload
允许,拒绝某个用户,从某个IP登录,允许和拒绝不能同时出现
AllowUsers 用户@IP //允许登录
DenyUsers 用户@IP //拒绝登录
例:
只允许dyq和zhangsan从192.168.1.0网段登录(多用户间用空格分隔)
AllowUsers dyq@192.168.1.0 zhangsan //多用户之间用空格分隔
登录验证方式:
1. 密码登录验证:比较简单的方法,通过本地的密码就可以登录服务器。
2. 密钥登录验证:生成公钥私钥的方法来验证登录。公钥需要保存在客户机端。
一般两种验证方式同时开启,系统会优先选择秘钥验证的方法登录。在安全级别比较高的服务器上要一般只开秘钥验证方式。
怎么生成公钥私钥,后面讲。
#vim /etc/ssh/sshd_config
PasswordAuthentication yes //启动密码验证
PubkeyAuthentication yes //启用秘钥验证
AuthorizedKeysFile .ssh/authorized_keys //指定公钥库数据文件
#service sshd reload
客户端(clients)连接方式
两种远程连接方式,一种是通过命令连接(命令界面常用),另一种是通过客户端连接(win常用)
命令连接服务端
ssh远程登录
格式:
ssh [-p port] username@IPaddress
如果端口不是默认的22端口的话,则需要用到参数 -p 制定端口。
scp远程复制
scp命令可以把本地的文件复制到远程服务器上,或把服务器上的文件复制到本地来。
复制文件报错解决地址:
http://www.07net01.com/linux/bash__scp__command_not_found_lost_connectionwentijiejue_15485_1347695526.html
格式:
scp -r [要复制的文件] [目标文件] -P
参数:
-r //复制整个目录
-P(大写) //指定端口
更多参数 man scp
例:
服务器复制到本地
# scp -P 50022 dyq@192.168.1.11:/home/dyq/132 /root/123
本地复制到服务器,把顺序反过来就好了。
# scp -P 50022 /root/dd.sql dyq@192.168.1.11:/home/dyq
sftp 安全 FTP
sftp是ssh协议中的一种,可以模拟FTP协议,输入密文传输比FTP协议要安全。
使用sftp命令连接服务器时,服务器必须开启FTP服务,否则无法连接。
格式:
sftp user_name@IPaddress
以上三种命令只是简单介绍,里面有更多的参数和形式要发掘,详细信息可以查询资料或者man帮助文档。
WIN上客户端连接远程服务这里就不多做叙述了。
构建密钥验证的SSH体系
概念:
密钥验证的形式比密码验证具有更高的安全性。这里要记住两个文件:id_rsa 是私钥;id_rsa.pub 是公钥。
密钥验证工作过程:
一步:生成公钥(id_rsa.pub)私钥(id_rsa)。
二步:上传公钥文件(id_rsa.pub)
三步:导入公钥信息,~/.ssh/authorized.keys
四步:公钥跟私钥验证。
在客户端创建密钥对
linux中通过工具 ssh-keygen 可以生成密钥文件,密钥文件具有两种加密算法:RSA或DSA(使用任意一种就好)
格式:
ssh-keygen -t [加密算法RSA;DSA]
参数:
-t //指定加密算法
更多参数:man ssh-keygen
例:遇到交互一般直接回车就好了。
确认密钥是否存在:
# ls -lh ~/.ssh
密钥要保存好,不要泄露给别人。
将公钥上传到服务器
上传密钥可以通过多种方式(复制粘贴,FTP,samba,HTTP,email)下面用scp命令上传。
# scp -P 50022 ~/.ssh/id_rsa.pub dyq@192.168.1.11:/home/dyq/
dyq@192.168.1.11's password:
id_rsa.pub 100% 408 0.4KB/s 00:00
在服务器中导入公钥文件
密钥保存在~/.ssh/authorized_keys 文件中
操作:
# mkdir ~/.ssh //没有.ssh文件,就要手动创建
# cat /home/dyq/id_rsa.pub >> ~/.ssh/authorized_keys //重定向导入
# tail -l /home/dyq/.ssh/authorized_keys //查看验证
由于默认采用严格的权限检测模式(StrictModes yes),因此要求 .ssh的权限只能有属主的权限,属组,其他用户,不能拥有权限,否则验证失败。
在客户端使用密钥验证
当上三步部署成功以后就可以直接通过密钥验证的方式登录了。
以上是关于ssh远程控制的主要内容,如果未能解决你的问题,请参考以下文章
SSH远程管理,构建密钥对验证的SSH体系,设置SSH代理功能。
SSH 只能用于远程 Linux 主机?那说明你见识太小了!