telnet,TCP/23,远程登录
认证明文(密码认证)
数据传输明文
ssh:Secure Shell ,TCP/22
C/S架构 套接字监听
SSH --> SSH
openssh(开源) 即是协议,又是软件
ssh V1(中间人攻击),V2
客户端:
LINUX:ssh
Windows:putty,SecureCRT(商业版),SSHsecureShellClient,Xmanger
服务器端:(linux,unix)
sshd
openssh(ssh,sshd)
ssh--->telnet
ssh:主机密钥
client-------->server
yes:接受服务器主机发来的公钥
RSA,DSA
客户端生成临时对称密钥(会话)随机生成
对称密钥使用服务器的公钥加密后传给服务器,只有服务器的私钥可以解密。
账号和密码用对称密钥加密后传给服务器进行认证。
认证通过,建立一个永久的会话通道。
基于口令的认证
基于密钥的认证
客户端生成一对密钥,公钥传到服务器的对应用户的家目录下,身份认证是客户端利用自己的私钥加密一段数据,服务器用客户的公钥解密。可解,则认证通过。
不允许root直接登录,而是用普通用户,在su切换。
一台主机为客户端(基于某个用户实现 ),
基于ssh的远程复制命令,可以实现在主机之间传输数据。#进入目录
cd /etc/ssh/
vim sshd_config
#找到PermitRootLogin without-password
#将without-password修改为yes
#重启ssh服务
service ssh restart
#再用securecrt就能成功登录我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。其实,有一个更好的办法来保证安全,linuxssh指定秘钥交换算法如下:
客户端向目标服务器发送登录请求。在SSH服务启用了证书验证登录方式后,会优先通过证书验证方式进行登录验证。目标服务器根据SSH服务配置,在用户对应目录及文件中读取到有效的公钥信息。目标服务器生成一串随机数,然后使用相应的公钥对其加密。目标服务器将加密后的密文发回客户端。客户端使用默认目录或-i参数指定的私钥尝试解密。如果解密失败,则会继续尝试密码验证等其它方式进行登录校验。如果解密成功,则将解密后的原文信息重新发送给目标服务器。意思类似于:“看,这是这段话的原文。我能读懂发过来的密文,我拥有服务器的控制权,请让我登录。目标服务器对客户端返回的信息进行比对。如果比对成功,则表示认证成功,客户端可以登录。如果对比失败,则表示认证失败,则会继续尝试密码验证等其它方式进行登录校验。1 生成公钥
首先检查本机公钥:
$ cd ——/ssh
如果提示:No such file or directory 说明你是第一次使用git。如果不是第一次使用,请执行下面的 *** 作,清理原有ssh密钥。
$ mkdir key_backup$ cp id_rsa key_backup$ rm id_rsa
生成新的密钥:
$ ssh-keygen -t rsa -C “您的邮箱地址”
在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。
您可以在你本机系统盘下,您的用户文件夹里发现一个。ssh文件,其中的id_rsapub文件里储存的即为刚刚生成的ssh密钥。
2 添加公钥
登录CODE平台,进入用户“账户设置”,点击右侧栏的“ssh公钥管理”,点击“添加公钥”,将刚刚生成的公钥填写到“公钥”栏,并为它起一个名称,保存即可。
注意:复制公钥时不要复制多余的空格,否则可能添加不成功。
我碰到的一个项目:有些时候,需要在你生成的。ssh目录下,新建个config文件,然后里面写入user xxx
3 管理公钥
您也可以在“账户设置”——“ssh公钥管理”删除或者修改公钥。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)