Linux 基础之 OpenSSH
OpenSSH
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
OpenSSH是使用SSH透过计算机网络加密通讯的实现。它是取代由SSH Communications Security所提供的商用版本的开放源代码方案。目前OpenSSH是OpenBSD的子计划。
OpenSSH常常被误认以为与OpenSSL有关联,但实际上这两个计划的有不同的目的,不同的发展团队,名称相近只是因为两者有同样的软件发展目标──提供开放源代码的加密通讯软件。
OpenSSH服务,sshd,是一个典型的独立守护进程(standalone daemon),但也可以根据需要通过网络守护进程。
- 安装 openssh
- 使用 ssh 用户名+密码 方式登录
- openssh的主配置文件为 /etc/ssh/ 目录下的 ssh_config 和 sshd_config
- ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。
这里只配置 sshd_config
vim /etc/ssh/sshd_config #需要root权限
修改以下几项
- Port 22 #sshd服务运行端口,默认为22
SyslogFacility AUTHPRIV #定义ssh的日志记录在 /var/log/secure 文件中
PermitRootLogin yes #允许 root 用户网络登录
PermitEmptyPasswords no #是否允许空密码登录,设置为no 不允许
PasswordAuthentication yes #是否允许使用密码登录,设置为允许
UsePAM no #是否使用PAM验证
UseDNS no #是否允许DNS查询,选择 no 关闭
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server - 确认无误后保存退出,重启ssh服务
- 在另外一台机器上登录
- ssh 用户名@IP 登录的用户要事先存在于要登录的机器上,并设置有密码。
- 按提示输入密码
在生产环境中,如果让root用户直接可以使用网络登录是非常危险的,所以下面制定更高安全级别的登陆方式:密钥登录
使用 ssh-keygen 命令来生成密钥对
使用需要登录的用户生成密钥对
- Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa): #默认存放密钥的目录及密钥名称 id_rsa (默认基于rsa算法)
Enter passphrase (empty for no passphrase): #是否给密钥设置密码
Enter same passphrase again:
Your identification has been saved in /home/test/.ssh/id_rsa. #生成密钥对的存放目录及名称
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:q12boL6CTiU1DSBRt6/rPpwoIi/8mVI1Aq5POWbUUIU test@server10.2
The key's randomart image is: #rsa 2048 为密钥的长度
+---[RSA 2048]----+
|oooo+o. |
| o..E+ |
|. .o+ . |
| ..o.= |
|....+ o S |
|. *+ . . |
|.=o=.. o . |
|=++ B. + o o |
|o==*++=.. o |
+----[SHA256]-----+ - 私密钥文件 id_rsa 一定要保存好,不能泄漏
- 将公密钥文件 id_rsa.pub 的内容写入本地 authorized_keys 私钥验证文件中
- 在使用密码验证方式登录的情况下,可以使用 ssh-copy-id 将公钥复制到远程机器
- ssh-copy-id -i .ssh/id_rsa.pub 用户名@对方IP
- 注意: ssh-copy-id 将key写到远程机器的 ~/ .ssh/authorized_key.文件中
注意 .ssh 目录和 authorized_keys 文件的权限
.ssh 目录权限必须为 700 authorized_keys 文件权限必须为 644
- chmod 700 ~/.ssh
- chmod 644 ~/.ssh/authorized_keys
- Permission denied (publickey,keyboard-interactive).权限被拒绝(公钥、键盘交互) 一般这个报错就是文件权限引起的
编辑 /etc/ssh/sshd_config 配置文件
- Port 22
SyslogFacility AUTHPRIV
PermitRootLogin no #禁止root用户网络登录
PubkeyAuthentication yes #开启密钥认证
AuthorizedKeysFile .ssh/authorized_keys #指明密钥认证文件存放位置及名称,这里使用的是相对路径
PermitEmptyPasswords no #不允许空密码登录
PasswordAuthentication no #不允许密码方式登录
UsePAM no
UseDNS no 重启服务之前,建议多开一个 ssh 链接,万一配置有问题方便处理
确认无误保存退出,重启sshd服务
systemctl restart sshd
- 登录测试
- 切换为生成 ssh-keygen 的用户
- ssh test@192.168.10.2
将公密钥 id_rsa.pub 文件中的 key 复制到其他机器上的 authorized_keys 密钥验证文件中
注意 :id_rsz.pub 文件中的 Key 为一行,没有换行
单方通信只需要对方机器的 id_rsz.pub 文件中的 Key
- A 机器上的 authorized_keys 密钥认证文件中有 B 机器密钥key的信息,所以在 B 机器上可以登陆 A 机器
- 反之在 B 机器上的 authorized_keys 密钥认证文件中没有 A 机器的key,所以在 A 机器上无法登陆 B 机器
双方通信 authorized_keys 文件中要有双方机器 id_rsz.pub 文件中的 Key
- 在另外一台机器上测试
- 配置好使用密钥认证登录后,在 WINDOWS 上使用 Xshell 密钥认证方式登录 Linux
- 打开 Xshell 点击 工具--新建用户密钥生成向导
- 默认密钥类型 rsa ,密钥长度 2048位
- rz 命令属于 lrzsz 包
- 在 Linux 机器上使用哪个用户登陆,就在对应用户家目录下的 authorized_keys 文件中添加密钥认证 key
- 在 Linux 机器上使用哪个用户登陆就在对应用户家目录下的 authorized_keys 文件中添加密钥认证 key
- 填写对应的用户名
- 填写用户 key 文件的加密密码
Linux 基础之 OpenSSH相关推荐
- LINUX基础知识笔记全
LINUX基础知识整理 1.Linux 基本知识 2.Linux 文件和目录管理 vim scp sftp 压缩和归档 文件访问权限 脚本 3.Linux 用户和群组管理 sudo ssh opens ...
- Linux基础命令与知识点
Linux基础知识与常见命令 作者:卖兔子的萝北 分类:学习笔记 根目录: bin: 可执行文件 dev:硬件设备文件 etc: 系统配置文件 boot:开机启动文件 usr/bin:可执行文件 /v ...
- Linux系统中OpenSSH的安装和配置(转)
Linux系统中OpenSSH的安装和配置(转) 概述 许多网络程序,如telnet.rsh.rlogin或rexec,用明文(plain text)传送口令和秘密的信息,所以就可利用任何连接到网络上 ...
- 一键检查LINUX基础环境
一键检查LINUX基础环境 搞这个脚本的初衷: 每次我部署完环境,都得认真慢慢检查一般,有点费劲,一直想搞个像样的一键检查脚本,这不,可算抽空打个样了. [root@z4 ~]# sh bench.s ...
- 小猿圈Linux基础面试题,看看你能答对几道?
最近身边的很多朋友都在学习linux,从最开始的安装软件都需要百度一天的他们,现在已经成长为了,不需要百度就可以把自己弄懵圈的了,接下来的几天小猿圈linux老师会为大家准备一些实用的linux技巧分 ...
- linux基础知识-链接列表
linux基础知识-链接列表 1. 安装centos 7 1.1 Linux的初识 1.2 centOS 7安装教程 1.3 centOS 7配置ip和网络问题排查 1.4 PuTTY和Xshell远 ...
- linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp
linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...
- 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...
本节书摘来自异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...
- linux基础概念和个人笔记总结(6)
防伪码:曾经梦想仗剑走天涯,回过头,却发现还是放不下家的牵挂 后续理论的验证图文详解,我会更新,希望大家可以参考 第十一章 FTP文件传输服务 1.FTP连接 控制连接:tcp21端口,用于发送ftp ...
最新文章
- Php基础正则表达式篇
- 对手机支付安全机制的思考
- 【Linux】一步一步学Linux——exit命令(207)
- 机器学习——前馈神经网络
- LTV(CLV)模型的实战案例
- 博士生Science发文:很庆幸导师要求每周交工作进展汇报!
- 基于Tablestore的Wifi设备监管系统架构实现
- matlab 二值化_基于MATLAB的指纹识别系统[GUI界面+万字技术文档+语音播报]
- 15天玩转redis —— 第六篇 有序集合类型
- 迷你迅雷 vs. QQ旋风
- HONOR荣耀50/荣耀50Pro怎么解锁huawei 荣耀50pro屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤不开机跳过锁屏移除锁定进系统方法经验
- c语言中内存分配方式
- Unity移动端自动翻转及横竖屏的设置与检测
- Qt中如何做出CSS那样华丽质感以及3D立体感的按钮?
- ewebeditor***
- 《中国高血压防治指南2010》学习笔记-完成
- ubuntu解压和压缩tar文件
- java 展开收起列表组件_ExpandableListView(可展开的列表组件)的说明以及其用法...
- 护眼灯真能保护眼睛吗?2022双十二买什么样的护眼灯对眼睛好
- 大数据学习之hadoop——07阿里云服务器搭建集群以及遇到的问题解决办法
热门文章
- MultipartFile 类
- AUTOCAD2016 自学历程
- 模仿开眼的视频APP,基于MVP+rxjava2+Retrofit+Dagger2+Glide+Realm+GSYVideoPlayer
- Smartbi:疫情之后房地产投资如何把握先机、量化风险
- ANSA二次开发 - 安装外部python库(以xlrd为例)
- LMT NEW PBS软件对作业排队运算的优势
- Javascript屏蔽输入框的违禁词
- stm32g431之adc
- 在线公开课 | 从单机到分布式,数据库服务的演变史
- 纵横细解,TFN T200K千兆以太网测试仪