linux中ssh服务
2016-04-24 20:37
429 查看
ssh:Secure Shell,属于应用层协议,工作在tcp的22端口。相对于telnet,ssh通信过程及认证过程都是加密的,故更加安全。
在linux中,一般使用openssh来实现ssh
ssh的认证有口令认证和密钥认证
一、基于口令的认证
1、 客户端发起连接请求 2、 服务端发送自身公钥给客户端,由客户端决定是否接受(ssh客户端接收一个服务端的密钥 后,密钥保存在客户端当前用户的家目录下的.shh目录中的known hosts文件中) 3、 客户端生成随机数当做对称密码 4、 将随机密码用服务端公钥加密发送给服务端
二、基于密钥的认证
客户端自身产生一对密钥,之后将公钥存到服务器对应用户的家目录的.ssh/authorized_keys 或.ssh/authorized_key2中,此后,该客户端在连接时无需输入密码;为确保安全,.ssh目录的 权限应为700
ssh配置使用:
服务器端:
主配置文件:/etc/ssh/sshd_config
对该文件一些常见设置说明:
Listenaddress 0.0.0.0 #提供服务的地址(若全0表示服务器上所有的地址都 启用) Keyregenerationinterval #客户端产生的非对称秘钥能使用的时间 Permitrootlogin #是否允许管理员直接登录 Maxauthtries #设置最多的尝试次数 Rsaauthentication #是否支持rsa认证 Pubkeyauthentication #是否支持秘钥认证 Passwordauthentication #是否支持口令认证 AllowUsers #指定允许特定用户使用ssh连接 DenyUsers #禁止特定用户使用ssh连接 当需要限制IP的登录时,可编辑/etc/hosts.deny和/etc/hosts.allow文件
设置好配置文件后,运行service sshd start即可开启ssh服务
客户端: 发起ssh连接: ssh USERNAME@HOST ssh -l USERNAME HOST ssh USERNAME@HOST ‘COMMAND' #在远程主机上执行命令并返回结果后断开连 接 如不指定用户名时,会以客户端当前用户登陆远程主机
当要使用密钥认证时,连接前客户端要做的准备工作:
① ssh-keygen -t rsa #产生一对密钥,密钥默认保存在~/.ssh/目录下(私钥为 id_rsa;公钥为id_rsa.pub)
② ssh-copy-id -i ~/.ssh/id_rsa.pub '-p ?? USERNAME@HOST' #将产生的公钥复制 到服务器对应用户的家目录下(??为ssh监听的端口)
使用ssh注意事项:
1、密码应该经常换且足够复杂
2、使用非默认端口
3、禁止管理员直接登录,应先以普通用户登录,再切换到root
4、仅允许有限用户登录
5、限制客户端地址
6、使用版本2
7、使用基于密钥的认证,但应将.ssh目录权限设置为700
scp命令:
用于文件复制,基于ssh服务
用法:
从远程主机下载文件: scp USERNAME@HOST:/path/to/somefile /path/to/local
上传文件到远程主机: scp /path/to/local USERNAME@HOST:/path/to/somefile
scp还可使用许多选项,选项用法与cp相同
在linux中,一般使用openssh来实现ssh
ssh的认证有口令认证和密钥认证
一、基于口令的认证
1、 客户端发起连接请求 2、 服务端发送自身公钥给客户端,由客户端决定是否接受(ssh客户端接收一个服务端的密钥 后,密钥保存在客户端当前用户的家目录下的.shh目录中的known hosts文件中) 3、 客户端生成随机数当做对称密码 4、 将随机密码用服务端公钥加密发送给服务端
二、基于密钥的认证
客户端自身产生一对密钥,之后将公钥存到服务器对应用户的家目录的.ssh/authorized_keys 或.ssh/authorized_key2中,此后,该客户端在连接时无需输入密码;为确保安全,.ssh目录的 权限应为700
ssh配置使用:
服务器端:
主配置文件:/etc/ssh/sshd_config
对该文件一些常见设置说明:
Listenaddress 0.0.0.0 #提供服务的地址(若全0表示服务器上所有的地址都 启用) Keyregenerationinterval #客户端产生的非对称秘钥能使用的时间 Permitrootlogin #是否允许管理员直接登录 Maxauthtries #设置最多的尝试次数 Rsaauthentication #是否支持rsa认证 Pubkeyauthentication #是否支持秘钥认证 Passwordauthentication #是否支持口令认证 AllowUsers #指定允许特定用户使用ssh连接 DenyUsers #禁止特定用户使用ssh连接 当需要限制IP的登录时,可编辑/etc/hosts.deny和/etc/hosts.allow文件
设置好配置文件后,运行service sshd start即可开启ssh服务
客户端: 发起ssh连接: ssh USERNAME@HOST ssh -l USERNAME HOST ssh USERNAME@HOST ‘COMMAND' #在远程主机上执行命令并返回结果后断开连 接 如不指定用户名时,会以客户端当前用户登陆远程主机
当要使用密钥认证时,连接前客户端要做的准备工作:
① ssh-keygen -t rsa #产生一对密钥,密钥默认保存在~/.ssh/目录下(私钥为 id_rsa;公钥为id_rsa.pub)
② ssh-copy-id -i ~/.ssh/id_rsa.pub '-p ?? USERNAME@HOST' #将产生的公钥复制 到服务器对应用户的家目录下(??为ssh监听的端口)
使用ssh注意事项:
1、密码应该经常换且足够复杂
2、使用非默认端口
3、禁止管理员直接登录,应先以普通用户登录,再切换到root
4、仅允许有限用户登录
5、限制客户端地址
6、使用版本2
7、使用基于密钥的认证,但应将.ssh目录权限设置为700
scp命令:
用于文件复制,基于ssh服务
用法:
从远程主机下载文件: scp USERNAME@HOST:/path/to/somefile /path/to/local
上传文件到远程主机: scp /path/to/local USERNAME@HOST:/path/to/somefile
scp还可使用许多选项,选项用法与cp相同
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- Linux 下无损图片压缩小工具介绍