Linux系统ssh无密码登录设置手册
Linux系统ssh无密码登录设置手册目录目录 (2)1引言 (3)1.1目的 (3)1.2对象 (3)2修订历史 (3)3参考资料 (3)4术语与缩写 (3)4.1术语 (3)4.2缩写 (4)5SSH简介 (4)5.1功能 (4)5.2验证 (4)5.3层次 (5)5.3.1传输层协议[SSH-TRANS] (5)5.3.2用户认证协议[SSH-USERAUTH] (5)5.3.3连接协议[SSH-CONNECT] (6)5.4结构 (6)5.5应用 (6)5.5.1Scp (6)5.5.2Sftp (7)6Ssh无密码设臵 (7)6.1第一个设臵 (7)6.1.1修改ssdh配臵文件 (7)6.1.2客户端的设臵 (8)6.1.3服务端的设臵 (9)6.1.4验证 (9)6.2客户端与服务端相互之间无密码登录的设臵 (10)6.3多台机器之间相互之间无密码登录的设臵 (10)7关于公私钥对的一点理解 (10)8常见问题 (10)1 引言1.1 目的本手册的编写目的是对配置Linux系统服务器之间使用ssh协议登录无需要输入密码的相关步骤进行总结。
1.2 对象本文档主要供下列人员使用:实施人员――快速部署和监控系统2 修订历史3 参考资料[1].4 术语与缩写4.1 术语4.2 缩写5 SSH简介SSH 为Secure Shell 的缩写,由IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。
SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。
S S H最初是U N I X系统上的一个程序,后来又迅速扩展到其他操作平台。
S S H在正确使用时可弥补网络中的漏洞。
S S H客户端适用于多种平台。
几乎所有U N I X平台—包括H P - U X、L i n u x、A I X、S o l a r i s、Digital UNIX、I r i x,以及其他平台—都可运行S S H。
5.1 功能传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。
而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。
所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。
服务器和你之间的数据传送被“中间人”一转手做了手脚之后,就会出现很严重的问题。
通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的"通道"。
5.2 验证从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)只要你知道自己帐号和口令,就可以登录到远程主机。
所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。
可能会有别的服务器在冒充真正的服务器,也就是受到“中间人”这种方式的攻击。
第二种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。
如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。
服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。
如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。
客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
用这种方式,你必须知道自己密匙的口令。
但是,与第一种级别相比,第二种级别不需要在网络上传送口令。
第二种级别不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。
但是整个登录的过程可能需要10秒。
5.3 层次SSH 主要有三部分组成:5.3.1 传输层协议[SSH-TRANS]提供了服务器认证,保密性及完整性。
此外它有时还提供压缩功能。
SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。
SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。
该协议中的认证基于主机,并且该协议不执行用户认证。
更高层的用户认证协议可以设计为在此协议之上。
5.3.2 用户认证协议[SSH-USERAUTH]用于向服务器提供客户端用户鉴别功能。
它运行在传输层协议SSH-TRANS 上面。
当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。
会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。
SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。
5.3.3 连接协议[SSH-CONNECT]将多个加密隧道分成逻辑通道。
它运行在用户认证协议上。
它提供了交互式登录话路、远程命令执行、转发TCP/IP 连接和转发X11 连接。
5.4 结构SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x 和2.x。
用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。
OpenSSH 2.x同时支持SSH 1.x和2.x。
服务端是一个守护进程(daemon),他在后台运行并响应来自客户端的连接请求。
服务端一般是sshd进程,提供了对远程连接的处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接。
客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。
他们的工作机制大致是本地的客户端发送一个连接请求到远程的服务端,服务端检查申请的包和IP地址再发送密钥给SSH的客户端,本地再将密钥发回给服务端,自此连接建立。
SSH 1.x和SSH 2.x在连接协议上有一些差异。
一旦建立一个安全传输层连接,客户机就发送一个服务请求。
当用户认证完成之后,会发送第二个服务请求。
这样就允许新定义的协议可以与上述协议共存。
连接协议提供了用途广泛的各种通道,有标准的方法用于建立安全交互式会话外壳和转发(“隧道技术”)专有TCP/IP 端口和X11 连接。
SSH被设计成为工作于自己的基础之上而不利用超级服务器(inetd),虽然可以通过inetd上的tcpd来运行SSH进程,但是这完全没有必要。
启动SSH服务器后,sshd运行起来并在默认的22端口进行监听(你可以用# ps -waux | grep sshd 来查看sshd是否已经被正确的运行了)如果不是通过inetd启动的SSH,那么SSH就将一直等待连接请求。
当请求到来的时候SSH守护进程会产生一个子进程,该子进程进行这次的连接处理。
5.5 应用5.5.1 Scpscp 命令是SSH 中最方便有用的命令了,试想,在两台服务器之间直接传送文件,仅仅用scp 一个命令就完全解决了。
你可以在一台服务器上以root 身份运行#scp servername:/home/ftp/pub/file1 ./ 这样就把另一台服务器上的文件/home/ftp/pub/file1 直接传到本机器的当前目录下,当然你也可以用#scp /tmp/file2 servername:/boot 把本机上的文件/tmp/file2 送到另一台机器的/boot 目录下。
而且整个传送过程仍然是用SSH 加密的。
5.5.2 Sftpsftp可以为传输文件提供一种安全的加密方法。
sftp 与ftp 有着几乎一样的语法和功能。
SFTP 为SSH的一部份,是一种传输档案至Blogger 伺服器的安全方式。
其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
SFTP 同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。
但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
6 Ssh无密码设臵有些时候,我们在一服务器使用ssh命令登录另一台服务器时,或者在复制/移动文件到另一台机器时会用到scp,因为它比较安全。
但如果每次都要输入密码,就比较烦了,尤其是在script里。
不过,如上章节所述,ssh有另一种用密钥对来验证的方式。
我们就可以利用这个方式来达到通过ssh无需密码登录另一台机器的目的。
6.1 第一个设臵为方便起见,我们把使用ssh命令的机器称为客户端,需要登录的机器称为服务端。
6.1.1 修改ssdh配臵文件用root用户修改/etc/ssh/sshd_config文件(客户端、服务器都需要更改)将:#AuthorizedKeysFile .ssh/authorized_keys这一行前面的#号去掉即,启用:AuthorizedKeysFile .ssh/authorized_keys(如果需要root也能ssh登录,把“#PermitRootLogin yes”前面的#号也去掉)同样在root用户下,使用:/etc/rc.d/init.d/sshd restart重启sshd服务使之生效。
这一节的不是必须的,可能sshd的默认配臵已经是上述这样配臵了,此时就不需要再修改了。
6.1.2 客户端的设臵切换到需要ssh登录的用户下,执行命令:ssh-keygen -t rsa产生公私钥对,例如在root用户下,将出现:此时提示保存钥匙文件路径,直接输入回车采用默认路径即可,然后出现:此时提示键入密码短语,直接回车为不建立密码短语(密码短语至少5个字符),然后出现:此时提示再次输入密码短语,直接回车为不建立密码短语,然后出现:公私钥产生在此用户目录下的.ssh子目录中,其中id_rsa为私钥,id_rsa.pub 为公钥。
6.1.3 服务端的设臵切换到需要ssh登录的用户下,然后类似下面的格式:scp 用户名@客户端主机名或ip地址:用户目录/.ssh/id_rsa.pub 用户目录例如客户端的IP是192.168.8.32,则:scp root@192.168.8.32:/root/.ssh/id_rsa.pub /root/将客户端账户的公钥传到服务端中。
LinuxSSH命令使用大全
LinuxSSH命令使用大全1. ssh:2. scp:3. sftp:- 切换本地工作目录:lcd [本地目录路径]- 切换远程工作目录:cd [远程目录路径]- 上传文件:put [本地文件] [远程路径]4. ssh-keygen:- 生成密钥对:ssh-keygen- 指定密钥文件名称:ssh-keygen -f [密钥文件名] - 指定密钥类型:ssh-keygen -t [密钥类型]5. ssh-agent:- 启动ssh-agent:eval `ssh-agent`- 添加私钥:ssh-add [私钥文件路径]- 列出已添加的私钥:ssh-add -l- 删除私钥:ssh-add -d [私钥文件路径]6. ssh-copy-id:7. sshfs:- 卸载远程文件系统:umount [本地路径]8. ssh-keyscan:- 扫描主机公钥:ssh-keyscan [主机地址]- 导出主机公钥到文件:ssh-keyscan [主机地址] >> [公钥文件]9. ssh_config:- 配置别名主机:Host [别名] / HostName [主机地址] / User [用户名] / Port [端口号]10. sshd_config:- 修改SSH服务器监听端口:Port [新端口号]- 禁止Root用户直接登录:PermitRootLogin no- 禁止空密码登录:PermitEmptyPasswords no11. ssh-keyscan:- 检查服务器公钥指纹:ssh-keyscan -H [主机地址]12. ssh-add:- 添加私钥到ssh-agent:ssh-add [私钥文件路径]- 显示已添加的私钥列表:ssh-add -l- 删除私钥:ssh-add -d [私钥文件路径]13. ssh-keyscan:- 扫描主机公钥:ssh-keyscan [主机地址]- 导出主机公钥到文件:ssh-keyscan [主机地址] >> [公钥文件路径]14. ssh-keygen:- 生成密钥对:ssh-keygen- 指定密钥文件名:ssh-keygen -f [密钥文件名]- 指定密钥类型:ssh-keygen -t [密钥类型]15. sshfs:- 卸载远程文件系统:umount [本地路径]16. netstat:- 查看当前SSH连接:netstat -nat , grep ESTABLISHED , grep [主机地址]17. lsof:- 查找打开的SSH连接:lsof -i :22 , grep ssh以上是常用的SSH命令,可以帮助您在Linux系统中进行远程登录、文件传输和配置调整。
SUSELinux搭建企业服务器的双机配置过程
SUSE Linux搭建企业服务器的双机配置过程当集群中的某个节点由于软件或硬件原因发生故障时,集群系统可以把资源切换到其他健康的节点上,使整个系统能连续不间断的对外提供服务,从而为机构24x365的关键业务提供了可靠的保障,达到了系统99.999%的高可用性和可靠性。
SuSE Enterprise Linux 10.0是内置Linux 2.6.16内核的企业级服务器,较之SuSE Enterprise Linux 9.0,它在性能、可扩展性、易管理性和安全等方面都予以加强,并有众多硬件和应用软件支持。
最近,笔者使用SuSE Enterprise Linux 10.0作为系统平台(使用其它Linux平台在安装部署时可能有小差异),在其上采用HeartBeat、Mon和Rsync等开源软件打造了一个高可用系统,挖掘了SuSE Linux的高可用性。
下面我为大家详细介绍如何在Suse Linux搭建双机的配置过程。
一、HeartBeat、Mon、Rsync简介二、安装环境首先,需要准备两台PC服务器,每台服务器有两块网卡,其物理网络图如图 1安装环境图1 网络拓扑图虽然在YaST2控制中心里有"高可用性"图形化的配置向导,我们这里不介绍一个过程,中在讲述原理和方法,主要是基于命令行的配置方式。
首先在PC服务器上安装SuSE Enterprise Linux 10.0系统,并将eth0配置为192.168.8.*网段,eth1配置为10.1.1.*网段,eth0链接对外的交换机,eth1用于两台机器的对连。
修改/etc /hosts文件,修改内容如下:1.10.1.1.1 linux12.10.1.1.2 linux23.192.168.8.92 svr14.192.168.8.93 svr25.192.168.8.112 svr注意,10.1.1.*为心跳线IP地址,192.168.8.*为对外IP,192.168.8.112为浮动IP。
Linux配置SSH免密登录“ssh-keygen”的基本用法
Linux配置SSH免密登录“ssh-keygen”的基本⽤法⽬录1 什么是SSH2 配置SSH免密登录2.1 安装必需的软件2.2 ssh-keygen创建公钥-私钥对2.3 ssh-copy-id把A的公钥发送给B2.4 在A服务器上免密登录B服务器3 扩展说明3.2 ⽂件权限3.3 ⽂件的编辑和查看1 什么是SSH引⽤百度百科的说明:SSH 为 Secure Shell的缩写,由 IETF 的⽹络⼩组(Network Working Group)所制定;它是建⽴在应⽤层基础上的安全协议。
SSH 是⽬前较可靠,专为远程登录会话和其他⽹络服务提供安全性的协议。
利⽤ SSH 协议可以有效防⽌远程管理过程中的信息泄露问题。
SSH最初是UNIX系统上的⼀个程序,后来⼜迅速扩展到其他操作平台。
为了在不同平台/⽹络主机之间的通信安全, 很多时候我们都要通过ssh进⾏认证. ssh认证⽅式主要有2种:①基于⼝令的安全认证: 每次登录的时候都要输⼊⽤户名和密码, 由于要在⽹络上传输密码, 可能存在中间⼈攻击的风险;②基于密钥的安全认证: 配置完成后就可以实现免密登录, 这种⽅式更加安全 —— 不需要在⽹络上传递⼝令, 只需要传输⼀次公钥. 常见的git的ssh⽅式就是通过公钥进⾏认证的.2 配置SSH免密登录说明: 这⾥演⽰所⽤的服务器操作系统是Cent OS 7. 我们的⽬标是:A服务器(172.16.22.131) 能免密登录 B服务器 (172.16.22.132).注意: ssh连接是单向的, A能免密登录B, 并不能同时实现B能免密登录A.2.1 安装必需的软件在操作之前, 先确保所需要的软件已经正常安装.这⾥我们需要安装ssh-keygen和ssh-copy-id, 安装⽅式如下:# 安装ssh-keygen, 需要确保服务器可以联⽹. 博主这⾥已经安装完成, 所以没有做任何事.[root@localhost ~]# yum install -y ssh-keygenLoaded plugins: fastestmirror, langpacksbase | 3.6 kB 00:00:00epel | 3.6 kB 00:00:00extras | 2.9 kB 00:00:00updates | 2.9 kB 00:00:00Loading mirror speeds from cached hostfileNo package ssh-keygen available.Error: Nothing to do# 安装ssh-copy-id[root@localhost ~]# yum install -y ssh-copy-idLoaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfileNo package ssh-copy-id available.Error: Nothing to do2.2 ssh-keygen创建公钥-私钥对(1) 在指定⽬录下⽣成rsa密钥, 并指定注释为“shoufeng”, 实现⽰例:[root@localhost ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "shoufeng"# ~密钥类型 ~密钥⽂件路径及名称 ~ 备注信息Generating public/private rsa key pair.Enter passphrase (empty for no passphrase): # 输⼊密码, 若不输⼊则直接回车Enter same passphrase again: # 再次确认密码, 若不输⼊则直接回车Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:9a:e3:94:b9:69:c8:e9:68:4b:dc:fa:43:25:7f:53:f1 shoufengThe key's randomart image is:+--[ RSA 2048]----+| || . || o || . . . E || + S. || . .. .=o || oo.oB. . || ..o=o.+ || .++oo+ |+-----------------+注意: 密钥的⽂件名称必须是id_xxx, 这⾥的xxx就是-t参数指定的密钥类型. ⽐如密钥类型是rsa, 那么密钥⽂件名就必须是id_rsa.(2) ssh-keygen常⽤参数说明:-t: 密钥类型, 可以选择 dsa | ecdsa | ed25519 | rsa;-f: 密钥⽬录位置, 默认为当前⽤户home路径下的.ssh隐藏⽬录, 也就是~/.ssh/, 同时默认密钥⽂件名以id_rsa开头. 如果是root⽤户, 则在/root/.ssh/id_rsa, 若为其他⽤户, 则在/home/username/.ssh/id_rsa; -C: 指定此密钥的备注信息, 需要配置多个免密登录时, 建议携带;-N: 指定此密钥对的密码, 如果指定此参数, 则命令执⾏过程中就不会出现交互确认密码的信息了.举例说明: 同时指定⽬录位置、密码、注释信息, 就不需要输⼊回车键即可完成创建:ssh-keygen -t rsa -f ~/.ssh/id_rsa -N shoufeng -C shoufeng(3) 前往~/.ssh/⽬录下查看⽣成的⽂件:# ⽣成的⽂件以test_rsa开头, test_rsa是私钥, test_rsa.pub是公钥:[root@localhost .ssh]# lstest_rsa test_rsa.pub# 通过cat命令查看公钥⽂件:[root@localhost .ssh]# cat id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2JpLMqgeg9jB9ZztOCw0WMS8hdVpFxthqG1vOQTOji/cp0+8RUZl3P6NtzqfHbs0iTcY0ypIJGgx4eXyipfLvilV2bSxRINCVV73VnydVYl5gLHsrgOx+372Wovlanq7Mxq06qAONjuRD0c64xqdJFKb1Ov# 可以看到最后有⼀个注释内容shoufeng2.3 ssh-copy-id把A的公钥发送给B默认⽤法是: ssh-copy-id root@172.16.22.132, ssh-copy-id命令连接远程服务器时的默认端⼝是22, 当然可以指定⽂件、远程主机的IP、⽤户和端⼝:# 指定要拷贝的本地⽂件、远程主机的IP+⽤户名+端⼝号:[root@localhost .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 root@172.16.22.132/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keysroot@172.16.22.132's password: # 输⼊密码后, 将拷贝公钥Number of key(s) added: 1Now try logging into the machine, with: "ssh -p '22' 'root@172.16.22.132'"and check to make sure that only the key(s) you wanted were added.2.4 在A服务器上免密登录B服务器[root@localhost .ssh]# ssh root@172.16.22.132Last login: Fri Jun 14 08:46:04 2019 from 192.168.34.16 # 登录成功3 扩展说明3.1 其他⽅式发送公钥⽂件上述2.3步骤是通过ssh-copy-id⼯具发送公钥⽂件的, 当然我们也可以通过其他⽅式实现:(1) 将A的公钥⽂件发给B:通过scp命令将A服务器的公钥⽂件发送到B服务器的⽤户⽬录下, 因为还没有配置成功免密登录, 所以期间需要输⼊B服务器对应⽤户的密码:[root@localhost .ssh]# scp id_rsa.pub root@172.16.22.132:/root/.sshroot@172.16.22.132's password:id_rsa.pub 100% 390 0.4KB/s 00:00(2) 在B上创建authorized_keys⽂件:[root@localhost .ssh]# cd /root/.ssh/[root@localhost .ssh]# lsid_rsa.pub# 通过A服务器的公钥⽣成"authorized_keys"⽂件:[root@localhost .ssh]# cat id_rsa.pub >> authorized_keys[root@localhost .ssh]# cat authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC2JpLMqgeg9jB9ZztOCw0WMS8hdVpFxthqG1vOQTOji/cp0+8RUZl3P6NtzqfHbs0iTcY0ypIJGgx4eXyipfLvilV2bSxRINCVV73VnydVYl5gLHsrgOx+372Wovlanq7Mxq06qAONjuRD0c64xqdJFKb1OvS/nyKaOr9注意: 上述重定向时使⽤>>进⾏追加, 不要⽤>, 那会清空原有内容.3.2 ⽂件权限为了让私钥⽂件和公钥⽂件能够在认证中起作⽤, 需要确保权限的正确性:①对于.ssh⽬录以及其内部的公钥、私钥⽂件, 当前⽤户⾄少要有执⾏权限, 其他⽤户最多只能有执⾏权限.②不要图省事设置成777权限: 太⼤的权限不安全, ⽽且数字签名也不⽀持这种权限策略.③对普通⽤户, 建议设置成600权限: chmod 600 authorized_keys id_rsa id_rsa.pub;④对root⽤户, 建议设置成644权限: chmod 644 authorized_keys id_rsa id_rsa.pub.3.3 ⽂件的编辑和查看在Liunx环境下, 如果要查看、复制私钥、公钥, 以及authorized_keys等⽂件, 不要使⽤vim等编辑器打开, 因为它会产⽣不必要的回车;应该通过cat、more、less等查看命令把内容打印到终端上, 再作查看、复制等操作.总结以上所述是⼩编给⼤家介绍的Linux 配置SSH免密登录 “ssh-keygen”的基本⽤法 ,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
linux中ssh的用法
linux中ssh的用法摘要:1.ssh简介2.ssh安装与配置3.ssh使用方法a.基本用法b.远程执行命令c.文件传输d.端口转发4.ssh安全性5.ssh常见问题及解决方法正文:SSH(Secure Shell)是Linux系统中一种安全、可靠的远程登录和文件传输工具。
它可以在不安全的网络环境中实现加密通信,保护用户信息的安全。
下面我们将详细介绍Linux中SSH的用法。
1.SSH简介SSH是一种建立在应用层和传输层基础上的安全协议,用于计算机之间的加密登录。
它可以远程连接服务器,又可以借助SSH协议来传输数据,提供更安全的SFTP服务。
2.SSH安装与配置在Linux系统中,常用的SSH客户端是openssh。
我们可以通过以下命令安装它:```sudo apt-get updatesudo apt-get install openssh-server```安装完成后,需要对SSH服务进行配置。
编辑`/etc/ssh/sshd_config`文件,设置以下内容:```Port 22Protocol 2HostKey /etc/ssh/ssh_host_rsa_keyHostKey /etc/ssh/ssh_host_dsa_keyHostKey /etc/ssh/ssh_host_ecdsa_key```3.SSH使用方法a.基本用法使用SSH的基本语法为:```ssh [选项] [用户名@主机名]```例如,要登录到远程主机的用户名为root的用户,可以执行以下命令:```***************.1.100```b.远程执行命令在SSH连接成功后,可以在远程主机上执行命令。
例如,要查看远程主机的CPU使用情况,可以执行以下命令:```ssh 192.168.1.100 "top"```c.文件传输SSH还提供了文件传输功能。
可以使用`scp`命令在本地主机和远程主机之间传输文件。
putty使用密钥登陆OpenSSH配置方法(图文详解)
putty使⽤密钥登陆OpenSSH配置⽅法(图⽂详解)在Windows管理Linux服务器时,常使⽤putty登陆ssh进⾏远程管理。
默认登陆验证⽅式为密码认证,该⽅式虽然简单,但每次登陆都要输⼊⼀长串的密码,相当⿇烦。
⽽且,如果万⼀把root允许登陆打开,还有可能被强⼒破解,导致严重的后果。
所以,通常建议⽤密钥登陆验证代替密码⽅式,即简单,⼜可靠。
⼀、为什么建议使⽤密钥登陆通常现在的Linux发⾏版都使⽤OpenSSH代替telnet、rsh等明⽂传输的终端服务。
以红旗 DC Server 5.0为例:# rpm -qa|grep -E -w 'openssh'openssh-clients-4.0p1-1.2AXopenssh-server-4.0p1-1.2AXopenssh-4.0p1-1.2AX⽽OpenSSH默认是同时⽀持密码和密钥两种认证⽅式的。
转⼀个说明:为什么要使⽤公钥认证通常,通过ssh登录远程服务器时,使⽤密码认证,分别输⼊⽤户名和密码,两者满⾜⼀定规则就可以登录。
但是密码认证有以下的缺点:a)⽤户⽆法设置空密码(即使系统允许空密码,也会⼗分危险)b)密码容易被⼈偷窥或猜到c)服务器上的⼀个帐户若要给多⼈使⽤,则必须让所有使⽤者都知道密码,导致密码容易泄露,⽽且修改密码时必须通知所有⼈⽽使⽤公钥认证则可以解决上述问题。
a)公钥认证允许使⽤空密码,省去每次登录都需要输⼊密码的⿇烦b)多个使⽤者可以通过各⾃的密钥登录到系统上的同⼀个⽤户c)即使修改了对应⽤户的密码,也不会影响登陆d)若同时禁⽤密码认证,则只要保证私钥的安全,不会受到暴⼒破解的威胁⼆、使⽤putty⽣成密钥和登陆根据公钥认证的原理(见后⾯说明),认证双⽅任何⼀⽅都可制作该钥匙对,并且只要认证⽅有被认证⽅的公钥信息,即可匹配成功。
这⾥,我们先以Windows上的putty登陆Linux服务器为例说明。
Linux实验ssh配置详解
Linux实验ssh配置详解⼀、ssh详解1、什么是ssh简单来说,ssh是⼀种⽹络协议,⽤于计算机之间的加密登录。
如果⼀个⽤户从本地计算机,使⽤ssh协议登录另⼀台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
需要指出的是,ssh只有⼀种协议,存在多种实现,既有商业实现,也有开源实现。
2、基本⽤法(1)使⽤某个⽤户(例如user)登录远程主机host命令:ssh user@host(2)如果本地⽤户名和远程⽤户名⼀致,则登录时可以省略⽤户名命令:ssh host(3)ssh的默认端⼝是22,也就是说,你的登录请求会送进远程主机的22端⼝。
使⽤-p参数,可以修改这个端⼝命令:ssh –p 端⼝号 user@host3、中间⼈攻击SSH之所以能够保证安全,原因在于它采⽤了公钥加密。
整个过程如下:(1)远程主机收到⽤户的登录请求,把⾃⼰的公钥发给⽤户。
(2)⽤户使⽤这个公钥,将登录密码加密后,发送回来。
(3)远程主机⽤⾃⼰的私钥,解密登录密码,如果密码正确,就同意⽤户登录。
这个过程本⾝是安全的,但是实施的时候存在⼀个风险:如果有⼈截获了登录请求,然后冒充远程主机,将伪造的公钥发给⽤户,那么⽤户很难辨别真伪。
因为不像https协议,SSH协议的公钥是没有证书中⼼(CA)公证的,也就是说,都是⾃⼰签发的。
可以设想,如果攻击者插在⽤户与远程主机之间(⽐如在公共的wifi区域),⽤伪造的公钥,获取⽤户的登录密码。
再⽤这个密码登录远程主机,那么SSH的安全机制就荡然⽆存了。
这种风险就是著名的"中间⼈攻击"。
4、ssh的安全验证SSH有⾃⼰的⼀套验证⽅式,可以阻拦⼤部分的攻击,当然如果有⼈想通过撞库来尝试密码的话,就只有设置防⽕墙或者做其它的安全措施了。
从客户端来看,SSH提供两种级别的安全验证。
(1)第⼀种级别(基于⼝令的安全验证)只要你知道⾃⼰帐号和⼝令,就可以登录到远程主机。
linux 免密登录方法
linux 免密登录方法Linux是一种常用的操作系统,它具有高度的灵活性和安全性。
在Linux中,免密登录是一个非常常见的需求,它可以提高用户的使用效率并简化操作流程。
本文将介绍几种实现Linux免密登录的方法,帮助用户轻松实现免密登录。
一、使用公钥认证实现免密登录公钥认证是一种基于非对称加密的身份认证方式,它通过生成一对密钥,即公钥和私钥,来实现身份认证。
在Linux中,使用公钥认证可以实现免密登录。
具体步骤如下:1. 生成密钥对需要在客户端上生成密钥对。
可以使用以下命令生成密钥对:```$ ssh-keygen```按照提示输入密钥保存路径和密码,即可生成密钥对。
2. 复制公钥到服务器生成密钥对后,需要将公钥复制到服务器上。
可以使用以下命令将公钥复制到服务器上:```$ ssh-copy-id username@server_ip其中,username是服务器上的用户名,server_ip是服务器的IP 地址。
3. 免密登录完成以上步骤后,就可以实现免密登录了。
可以使用以下命令测试免密登录:```$ ssh username@server_ip```如果成功登录服务器而不需要输入密码,则表示免密登录已经成功实现。
二、使用密钥管理工具实现免密登录除了使用公钥认证,还可以使用一些密钥管理工具来实现免密登录。
这些工具可以帮助用户管理密钥,并自动完成密钥的复制和配置。
以下是几个常用的密钥管理工具:1. ssh-copy-idssh-copy-id是一个用于将公钥复制到服务器的工具。
可以使用以下命令将公钥复制到服务器上:```$ ssh-copy-id username@server_ip其中,username是服务器上的用户名,server_ip是服务器的IP 地址。
2. keychainkeychain是一个用于管理密钥的工具,它可以自动加载和管理密钥。
可以使用以下命令安装keychain:```$ sudo apt-get install keychain```安装完成后,可以使用以下命令将密钥添加到keychain中:```$ keychain ~/.ssh/id_rsa```然后,每次登录服务器时,keychain会自动加载密钥,实现免密登录。
详解ssh免密码登录配置方法(图示加命令)
详解ssh免密码登录配置⽅法(图⽰加命令)⾸先,说明⼀下我们要做的是,serverA 服务器的 usera ⽤户免密码登录 serverB 服务器的 userb⽤户。
我们先使⽤usera 登录 serverA 服务器[root@serverA ~]# su - usera[usera@serverA ~]$ pwd/home/usera然后在serverA上⽣成密钥对[usera@serverA ~]$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/usera/.ssh/id_rsa):Created directory '/home/usera/.ssh'.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/usera/.ssh/id_rsa.Your public key has been saved in /home/usera/.ssh/id_rsa.pub.The key fingerprint is:39:f2:fc:70:ef:e9:bd:05:40:6e:64:b0:99:56:6e:01 usera@serverAThe key's randomart image is:+--[ RSA 2048]----+| Eo* || @ . || = * || o o . || . S . || + . . || + . .|| + . o . || .o= o. |+-----------------+此时会在/home/usera/.ssh⽬录下⽣成密钥对[usera@serverA ~]$ ls -la .ssh总⽤量 16drwx------ 2 usera usera 4096 8⽉ 24 09:22 .drwxrwx--- 12 usera usera 4096 8⽉ 24 09:22 ..-rw------- 1 usera usera 1675 8⽉ 24 09:22 id_rsa-rw-r--r-- 1 usera usera 399 8⽉ 24 09:22 id_rsa.pub然后将公钥上传到serverB 服务器的,并以userb⽤户登录[usera@portalweb1 ~]$ ssh-copy-id userb@10.124.84.20The authenticity of host '10.124.84.20 (10.124.84.20)' can't be established.RSA key fingerprint is f0:1c:05:40:d3:71:31:61:b6:ad:7c:c2:f0:85:3c:cf.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '10.124.84.20' (RSA) to the list of known hosts.userb@10.124.84.29's password:Now try logging into the machine, with "ssh 'userb@10.124.84.20'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.这个时候usera的公钥⽂件内容会追加写⼊到userb的 .ssh/authorized_keys ⽂件中[usera@serverA ~]$ cat .ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA2dpxfvifkpswsbusPCUWReD/mfTWpDEErHLWAxnixGiXLvHuS9QNavepZoCvpbZWHade88KLPkr5XEv6M5RscHXxmxJ1IE5vBLrrS0NDJf8AjCLQpTDguyerpLybONRFFTqGXAc/ximMbyHeCtI0vnuJlvET0pprj7bqm 查看serverB服务器userb⽤户下的 ~/.ssh/authorized_keys⽂件,内容是⼀样的,此处我就不粘贴图⽚了。
Linux网络操作系统项目教程 项目6 配置网络和使用ssh服务
6.1.6 使用nmcli命令配置网络
NetworkManager 是管理和监控网络设置的守护进程,设备即网络接口,连接是对 网络接口的配置。一个网络接口可以有多个连接配置,但同时只有一个连接配置生效。
18
1.常用命令
nmcli connection show:显示所有连接。 nmcli connection show --active:显示所有活动的连接状态。 nmcli connection show "ens33":显示网络连接配置。 nmcli device status:显示设备状态。 nmcli device show ens33:显示网络接口属性。 nmcli connection add help:查看帮助。 nmcli connection reload:重新加载配置。 nmcli connection down test2:禁用test2的配置,注意一个网卡可以有多个配置。 nmcli connection up test2:启用test2的配置。 nmcli device disconnect ens33:禁用ens33网卡,物理网卡。 nmcli device connect ens33:启用ens33网卡。
图6-16 激活(Activate)连接或使连接失效(Deactivate)
17
(6)至此,在Linux系统中配置网络的步骤就结束了。
[root@RHEL7-1 ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::c0ae:d7f4:8f5:e135 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:66:42:8d txqueuelen 1000 (Ethernet) RX packets 151 bytes 16024 (15.6 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 186 bytes 18291 (17.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ……
linux下的ssh配置
linux下的ssh配置配置“/etc/ssh/ssh_config”文件“/etc/ssh/ssh_config” 文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式。
这个文件的每一行包含“关键词-值”的匹配,其中“关键词”是忽略大小写的。
下面列出来的是最重要的关键词,用man命令查看帮助页(ssh (1))可以得到详细的列表。
编辑“ssh_config”文件(vi /etc/ssh/ssh_config),添加或改变下面的参数:# Site-wide defaults for various optionsHost *ForwardAgent noForwardX11 noRhostsAuthentication noRhostsRSAAuthentication noRSAAuthentication yesPasswordAuthentication yesFallBackT oRsh noUseRsh noBatchMode noCheckHostIP yesStrictHostKeyChecking noIdentityFile ~/.ssh/identityPort 22Cipher blowfishEscapeChar ~下面逐行说明上面的选项设置:Host *选项“Host”只对能够匹配后面字串的计算机有效。
“*”表示所有的计算机。
ForwardAgent no“ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。
ForwardX11 no“ForwardX11”设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。
RhostsAuthentication no“RhostsAuthentication”设置是否使用基于rhosts的安全验证。
RhostsRSAAuthentication no“RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。
