首页 运维 linux运维 linux自带有ssh吗

linux自带有ssh吗

Apr 06, 2023 pm 03:55 PM
linux ssh

linux自带有ssh。linux系统会自带ssh软件,默认就是OpenSSH相关软件包,并将ssh服务添加为开机自启动,可以通过“ssh -V”命令来查看安装的ssh版本信息。执行“systemctl start sshd”命令即可启动sshd服务,默认端口使用的22端口。

linux自带有ssh吗

本教程操作环境:linux7.3系统、Dell G3电脑。

linux自带有ssh吗

服务器一般都在机房,如果每次维护服务器都要去机房,就没有舒服了。所以linux有一个功能可以远程使用shell的方式发,就是ssh(Secure Shell 的缩写)。 也就是在服务器上会启动一个服务,专门接收远程的访问数据,然后再把这些数据转发给系统内核,完成这些操作,这样研发的同事就不需要去机房就可以维护服务器。

ssh需要服务器开放相应的网络端口,默认是22端口,也可以修改为其他端口,例如9022等。

因为考虑服务器对外保留端口,而且是管理类的(通过shell,就可以控制服务器了),因此ssh提供有各种安全限制方式,比较常见的是禁止root账号登录、只允许可信ip登录,以及使用证书方式。 这样可以避免陌生人登录服务器,哪怕他以及获取到了相关的账号和权限。

外部电脑使用ssh登录服务器,需要有对应的客户端软件。如果是linux或者mac,系统会自带ssh软件(虽然是命令行方式的),默认就是OpenSSH,可以通过 ssh -V 命令来查看安装的ssh版本信息:

[root@xiaoluo xiaoluo]# ssh -V
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
登录后复制

从上述信息可以看到,我这台安装在虚拟机上的CentOS6.4默认安装的SSH其协议是1.0的。

OpenSSH服务器配置文件

服务名称:sshd

服务端主程序:/usr/sbin/sshd

服务端配置文件:/etc/ssh/sshd_config

openSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。

centos 7 系统默认已安装openssh相关软件包,并将ssh服务添加为开机自启动。

执行“systemctl start sshd”命令即可启动sshd服务。默认端口使用的22端口。

ssh_confiog 和 sshd_config 都是ssh服务器的配置文件

二者区别在于前者是针对客户端的配置文件,后者是针对服务端的配置文件。

ssh服务端主要包括两个服务功能,ssh远程连接和sftp服务

作用:SSHD服务使用SSH协议可以用来进行远程控制,或在计算机之间传输文件。相比较之前用Telnet方式来传输文件要安全很多,因为Telnet是是明文传输,SSH是加密传输。

ssh远程登录方式

ssh登录的方式有两种。

第一次登录服务器时,系统没有保存远程主机的信息,为了确认主机身份会提示用户是否继续连接,输入yes后登录,这时系统将远程服务器信息写入用户主目录下的:$HOME/.ssh/known_hosts 文件中,下次再进行登录时,因为保存有该主机信息就不会再提示了。

1、方法一

格式: ssh [ 远程主机用户名] @ [远程服务器主机名或IP地址] -p port
当Linux主机上远程连接另一台Linux主机时,如当前所登录的用户是root的话,当连接另一台主机时也是用root用户登录时,可以直接使用ssh IP 登录。端口默认即可,如果不是默认的情况下,需要使用-p 指定端口。

远程登录其它主机

ssh root@192.168.100.10    第一次交互输入yes 第二次交互输入root密码 登录成功

linux自带有ssh吗

登录之后再退出登录,在本地家目录会生成一个.sshd 的目录,里面有文件记录了登录的信息。

linux自带有ssh吗

 2、使用域名进程登录

①修改本机映射关系

linux自带有ssh吗

②进行登录

linux自带有ssh吗

3、故障解决

在工作中,有时候需要SSH登陆到别的Linux主机上去,但有时候SSH登录会被禁止,并弹出如下类似提示:

warning: Permanently added '192.168.100.10’(ECDSA) to the list of known hosts. Authentication failed.

这时直接删除家目录下面的 .ssh 目录下面的文件,即可解决。

4、sshd服务支持的两种登录验证方式

1)密码验证

对服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户端角度来看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时,防护能力比较弱。
18位密码复杂性(大写、小写、字符、数字),修改端口为高位端口,可以提高安全性。

2)秘钥对验证

要求提供相匹配的秘钥信息才能通过验证。通常先在客户端中创建一对秘钥文件(公钥、私钥),然后将公钥文件放到服务器中指定位置,远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,

大大增强了远侧还能够管理的安全性。该方式不易被假冒,且可以免交互登录,在shell中被广泛使用

当密码验证、秘钥验证都启用时,服务器将优先使用秘钥对验证。
对于安全性要求高的服务器,建立将密码验证方式禁用,只允许启用秘钥对验证方式。
登录后复制

配置文件中修改启用密码验证还是秘钥验证

配置文件:/etc/ssh/sshd_config

PasswordAuthentication yes                        #启用密码验证

PubkeyAuthentication yes                          #启用密钥对验证

AuthorizedKeysFile     .ssh/authorized_keys       #指定公钥库文件(ls -a可查看)
登录后复制

配置文件中其它的设置

LoginGraceTime 2m                #登录验证时间为2分钟(默认2分钟)
PermitRootLogin no               #禁止root用户登录
MaxAuthTries 6                   #最大重试次数为6次
PermitEmptyPasswords no          #禁止空密码登录
PrintLastLog yes                 #显示上次登入的信息!默认为 yes
AllowUsers                       #只允许或禁止某些用户登录
登录后复制

配置文件修改完之后,需要重启配置sshd服务

systemctl restart sshd #重启sshd服务
登录后复制

构建秘钥对验证的SSH

公钥和私钥的关系

在对称加密技术中,有两种秘钥,分为私钥和公钥,私钥是秘钥的创建人拥有,不可公布,公钥是创建者公布给他人的。
公钥用来给数据加密,用公钥加密的数据只能使用私钥解。
构建秘钥对验证SSH的原理

首先ssh通过加密算法在客户端产生秘钥对(公钥和私钥),公钥发送给服务端,自己保留私钥。
如果要想连接带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求联机的用户密钥进行安全验证。
SSH服务器收到请求之后,便在被连接的用户的家目录下寻找事先放上去的对应用户的公用秘钥
然后把它和连接的SSH客户端发送过来的公用秘钥进行比较,如果两个秘钥一致,SSH服务器就用公钥加密“质询”并把它发送给SSH客户端。

  • 简单理解

    生成密钥可以在客户端和服务端两边生成,但是我们需要将使用客户端登录到服务端,那么,客户端就一直需要的是私钥,服务端要存在公钥,所以不关密钥对在客户端还是服务端生成,客户端拿到的都会是私钥,服务端拿到的都是公钥。

  • 通俗理解

    公钥(public key)相当于一扇门,私钥(pribate key)相当于是开门的钥匙,当一台机器A需要登录到机器B的时候,就得拿着钥匙去开门,但是前提的是机器B必须要有门,所以需要给机器B装上门,那就是把机器A的公钥给到机器B。然后机器A使用私钥就可以打开机器B的公钥门。

1、scp远程复制

scp复制 :是secure copy (安全复制)的简写,用在Linux下进行远程拷贝的命令,而且scp传输时加密的。
应用场景
在系统误删环境配置文件且没有备份的时候,可以远程从其它主机上拷贝过来。

本地文件复制到服务器
scp 1.txt root@192.168.100.10:/opt

复制服务器的目录到本地
scp root@192.168.100.10:/home/sky/ ./

本地目录复制到服务器
scp -r / root@192.168.100.10:/home
登录后复制

linux自带有ssh吗

2、sftp 安全性传输

sftp 是secure file transfer protocol(安全文件传送协议) 的缩写,可以为传输文件提供一种安全的网络加密方法。

sftp与ftp有着几乎一样的语法和功能,sftp 为ssh的其中一部分,sftp本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作。所以使用sftp是非常安全的,但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低的多。对网络安全要求更高时,可以使用SFTP代替FTP。

  • 从服务端下载文件到本地主机

linux自带有ssh吗

  • 从本地主机上传文件到服务端

linux自带有ssh吗

3、配置密钥对实验

通过ssh-keygen工具为当前用户创建密钥对文件,可用的加密算法有“RAS”、“ECDSA”、“DSA”,通过-t 选项调用相应的算法。

3.1 在服务端创建密钥对

linux自带有ssh吗

查看密钥对的位置

linux自带有ssh吗

3.2、修改密钥对的配置文件

修改ssd_config配置文件没关闭,关闭密码验证,开启密钥验证

 vim /etc/ssh/sshd_config
登录后复制

linux自带有ssh吗

 加载服务

1linux自带有ssh吗

3.3、发送私钥到客户端

1linux自带有ssh吗

 1linux自带有ssh吗

 3.4用xshell登录

1linux自带有ssh吗

1linux自带有ssh吗

 1linux自带有ssh吗

1linux自带有ssh吗

1linux自带有ssh吗

 3.5、客户端创建秘钥

1linux自带有ssh吗

linux自带有ssh吗

 2linux自带有ssh吗

 2linux自带有ssh吗

 2linux自带有ssh吗

 2linux自带有ssh吗

 2linux自带有ssh吗

 2linux自带有ssh吗

2linux自带有ssh吗

 vim /etc/ssh/sshd_config  修改公钥位置文件

2linux自带有ssh吗

重启服务

 2linux自带有ssh吗

 linux自带有ssh吗

总结

  • ssh为远程登录服务器的服务

    优点是使用该登录,传输数据会先 压缩再加密 ,保证安全性
    登录方式有两种,配置各种参数进行登录,最为长常用的是 ssh ip地址或主机名

  • scp可以跨主机传输文件。

  • sftp也可以远程登录,传输具有安全性,功能与ftp类似,但是没有独立的守护进程,它依赖于sshd服务,22端口,只有启用sshd服务才能使用sftp服务。

  • ssh生成密钥对

    可在客户端和服务端两边生成,

    但是最终 客户端 拿的必须是 私钥 , 服务端 拿的是 公钥 ,

    且在服务器中需要修改配置文件: /etc/ssh/sshd_config 内容,比如:开启密钥对验证,关闭密码验证,设置公钥路径。

    密钥对验证使用的是非对称密钥,优点是:可以免密登录,提高安全性。

相关推荐:《Linux视频教程

以上是linux自带有ssh吗的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

无法以 root 身份登录 mysql 无法以 root 身份登录 mysql Apr 08, 2025 pm 04:54 PM

无法以 root 身份登录 MySQL 的原因主要在于权限问题、配置文件错误、密码不符、socket 文件问题或防火墙拦截。解决方法包括:检查配置文件中 bind-address 参数是否正确配置。查看 root 用户权限是否被修改或删除,并进行重置。验证密码是否准确无误,包括大小写和特殊字符。检查 socket 文件权限设置和路径。检查防火墙是否阻止了 MySQL 服务器的连接。

C语言条件编译:新手入门到实战应用的详尽指南 C语言条件编译:新手入门到实战应用的详尽指南 Apr 04, 2025 am 10:48 AM

C语言条件编译是一种根据编译时条件选择性编译代码块的机制,入门方法有:使用#if和#else指令根据条件选择代码块。常用条件表达式包括STDC、_WIN32和linux。实战案例:根据操作系统打印不同消息。根据系统位数使用不同的数据类型。根据编译器支持不同的头文件。条件编译增强了代码的可移植性和灵活性,使其适应编译器、操作系统和CPU架构变化。

【Rust自学】简介 【Rust自学】简介 Apr 04, 2025 am 08:03 AM

1.0.1前言这个项目(包括代码和注释)是在我自学Rust的过程中记录的。可能有不准确或表述不清的地方,还请大家谅解。如果您从中受益,那就更好了。1.0.2为什么使用RustRust可靠且高效。Rust可以取代C和C,性能相似但安全性更高,并且不需要像C和C那样频繁重新编译来检查错误。主要优点包括:内存安全(防止空指针取消引用、悬空指针和数据争用)。线程安全(确保多线程代码在执行前是安全的)。避免未定义的行为(例如,数组越界、未初始化的变量或访问已释放的内存)。Rust提供现代语言功能(例如泛型

Linux的5个基本组件是什么? Linux的5个基本组件是什么? Apr 06, 2025 am 12:05 AM

Linux的五个基本组件是:1.内核,管理硬件资源;2.系统库,提供函数和服务;3.Shell,用户与系统交互的接口;4.文件系统,存储和组织数据;5.应用程序,利用系统资源实现功能。

mysql 无法启动怎么解决 mysql 无法启动怎么解决 Apr 08, 2025 pm 02:21 PM

MySQL启动失败的原因有多种,可以通过检查错误日志进行诊断。常见原因包括端口冲突(检查端口占用情况并修改配置)、权限问题(检查服务运行用户权限)、配置文件错误(检查参数设置)、数据目录损坏(恢复数据或重建表空间)、InnoDB表空间问题(检查ibdata1文件)、插件加载失败(检查错误日志)。解决问题时应根据错误日志进行分析,找到问题的根源,并养成定期备份数据的习惯,以预防和解决问题。

mysql 可以在 android 上运行吗 mysql 可以在 android 上运行吗 Apr 08, 2025 pm 05:03 PM

MySQL无法直接在Android上运行,但可以通过以下方法间接实现:使用轻量级数据库SQLite,由Android系统自带,无需单独服务器,资源占用小,非常适合移动设备应用。远程连接MySQL服务器,通过网络连接到远程服务器上的MySQL数据库进行数据读写,但存在网络依赖性强、安全性问题和服务器成本等缺点。

c语言函数库在什么位置?c语言函数库怎么添加? c语言函数库在什么位置?c语言函数库怎么添加? Apr 03, 2025 pm 11:39 PM

C语言函数库是一个包含各种函数的工具箱,这些函数被组织在不同的库文件中。添加函数库需要通过编译器的命令行选项来指定,例如 GCC 编译器使用 -l 选项,后跟库名的缩写。如果库文件不在默认搜索路径下,则需要使用 -L 选项指定库文件路径。库有静态库和动态库之分,静态库在编译时直接链接到程序中,而动态库在运行时被加载。

MySQL安装在特定系统版本上报错的解决途径 MySQL安装在特定系统版本上报错的解决途径 Apr 08, 2025 am 11:54 AM

MySQL安装报错的解决方法是:1.仔细检查系统环境,确保满足MySQL的依赖库要求,不同操作系统和版本需求不同;2.认真阅读报错信息,根据提示(例如缺少库文件或权限不足)采取对应措施,例如安装依赖或使用sudo命令;3.必要时,可尝试源码安装并仔细检查编译日志,但这需要一定的Linux知识和经验。最终解决问题的关键在于仔细检查系统环境和报错信息,并参考官方文档。

See all articles