2017-07-28 18:01:26 shenghaomail 阅读数 244

近期申请了一台阿里云虚拟机做测试,但是出现了异常登陆,为了加强虚拟机安全,禁止密码登陆,操作如下:
使用XSHELL远程登陆阿里云,先使用XSHELL创建密钥:
工具—>新建用户密钥生成向导—>选择密钥类型和长度—>等待生成公钥—>输入两次密码—>保存密钥文件—>完成
然后将密钥文件上传到阿里云主机

rz id_rsa_2048.pub
cat id_rsa_2048.pub >> ~/.ssh/authorized_keys

修改sshd服务配置,再重启

vi /etc/ssh/sshd_config

PermitRootLogin yes改成·PermitRootLogin without-password
重启sshd服务

service sshd restart
2016-01-14 13:40:02 shaomingliang499 阅读数 4579

我们在一台Linux机器上利用SSH登陆其他Linux机器时,需要我们输入PassWord,以及搭建集群时,节点之间相互通信,都需要输入PassWord。第一,长时间SSH登陆需要反复输入密码;第二,集群之间通信需要自动化。这时,免密钥登陆就显得尤为重要,接下来我们将要介绍如何设置免密钥登陆。

我们以3台Linux机器为例说明免密钥登陆的步骤,以此类推,可以扩展到n台Linux机器中。
3台主机的用户名、主机名为:
shaomingliang@xcloud162
shaomingliang@xcloud163
shaomingliang@xcloud164

设置步骤

第一步骤:对每台机器运行ssh-keygen -t rsa指令

这条命令可以在任意路径下运行,其目的在/home/shaomingliang/.ssh路径下生成私钥和公钥(分别为id_rsa、id_rsa.pub),我们只使用id_rsa.pub做免密钥登陆。

这里写图片描述

这里写图片描述

这里写图片描述

第二步骤:对每台机器运行ssh-copy-id shaomingliang@xcloud162指令

运行这条命令会把当前机器上的id_rsa.pub内容拷贝到xcloud162机器下/home/shaomingliang/.ssh/authorized_keys文件里。

这里写图片描述

这里写图片描述

这里写图片描述

正常情况下执行此指令会正常把3台机器上的id_rsa.pub内容拷贝到xcloud162机器上的authorized_keys文件中,但是在我这里报错了,不能正常进行拷贝,解决办法就是我们自己人工把id_rsa.pub内容拷贝到xcloud162机器上的authorized_keys中。

下图为执行完此指令后,在authorized_keys文件中的内容。
这里写图片描述

第三步骤:在xcloud162机器上执行scp authorized_keys shaomingliang@xcloud163 (xcloud164):~/.ssh指令

在/home/shaomingliang/.ssh目录下运行此指令,把xcloud162机器上的authorized_keys文件分发到xcloud163和xcloud164机器上,如下图所示。

这里写图片描述
notice:括号中为另外的主机名。

到此为止,整个配置过程已经完成,现在让我们享受一下免密钥登陆的便利。

这里写图片描述

2013-10-11 09:29:37 yangchangji 阅读数 601

服务器每天有不计其数针对ssh的密码猜解,虽然加了密码错误三次后禁止IP的模块设置,但是实际应用仍然不是很完美,索性将服务器认证方式换成密钥认证了,就是不能再用密码登录,除非有密钥。这样猜解就没有意义了,写下来共享一下吧。

首先确保服务器ssh服务已启动,用户能够正常登录,然后配置客户端,过程如下:

一、先用自已的用户登录到服务器,比如我用 uplinux 登录到服务器

二、运行 SSH Secure Shell 工具中的“Secure Shell Client ”,选择菜单中“Edit”-> “Setting”,在打开的窗口左侧依次选择“Global Settings”->“User Authentication”->“Keys”,然后看到如下画面:

 

三、点击“Generate New”,在打开的窗口中点击“Next”看到如下图:

选择 “RSA”和 “1024”,然后点击“Next”,稍等一会,会计算一个密钥。

 

四、看到如下图,参照图片中的内容进行填写,比如 uplinux 用户可以填写成 uplinux_key,这个无所谓,不要跟其它key重复就好了。

 

在Passphrase中填写一个密码,这个是保护本地私有密钥的密码,也就是说,即使有人盗用了你的计算机,没有这个密码,也仍然不能使用你的密钥。注意,这个不是服务器上用户密码。

填写完毕点击“Next”

五、填写完毕后,密钥就生成完了,点击完成。

六、选择刚才生成的密钥,点击“Upload”,会弹出如下窗口:

 

参考窗口中的内容填写,注意名称是自动出现的,不用管。第二项需要修改为 .ssh ,第三项不用管。

然后点“Upload”

注意:这个时候应该是已经登录的状态,不然公钥传不上去。

七、如果没有提示错误,那么公钥就自动被上传到服务器上去了。

接着要做一些手工的操作,在命令行界面里,输入如下命令: (左脚注意前面的$符号不是命令,只是个提示符)

$ cd .ssh/
$ ls -l
会至少看到你刚才生成的 .pub 公钥文件和一个 authorization 认证配置文件。如果没有你刚才起的名子的文件,那就有问题,检查上面的过程。

接着做下面的命令,假设我生成的是 uplinux_key.pub

$ ssh-keygen -i -f   uplinux_key.pub >> authorized_keys

然后,删除刚才生成的文件:

$ rm -rf uplinux_key.pub
$ rm -rf   authorization

再接着,修改文件权限。(注意,本步骤很重要)

$ chmod 600 *
$ cd ../
$ chmod 700 .ssh

八、退出 SSH 工具。重新发起一次链接,参照下图进行选择:

注意最后一项“Public Key”

 

九、点击链接,然后会看到下面的提示:

 

这个提示就是要你输入刚才设置的“Passphrase”密码,输入正确后,就会登录到系统中了

十,客户端配置最后一步,也最重要:

本地会保存你生成的私钥和公钥,刚才所上传上去的就是公钥。

每次登录,软件都会自动拿本地的私钥和远端的公钥做加密运算,然后才能登录。

所以,我们必须保护我们本地的密钥文件,这个就象招商银行网上银行专业版的数字证书一样,丢了就不能再次登录了。

密钥文件存放在本地目录:

C:Documents and SettingsuplinuxApplication DataSSHUserKeys

把这个目录里的文件备份出来,压缩成带密码的压缩包,弄到手机里或者U盘里,以备重做系统后可用。

十一、服务器端关闭密码登录:

使用root用户编辑/etc/ssh/sshd_config文件,将PasswordAuthentication yes改为PasswordAuthentication no

保存文件并退出,重新启动sshd服务。

至此之后,服务器不再接受密码认证,客户端必须使用密钥才能正常登录。不过一定要注意密钥不要搞丢了,不然自已也不能远程登录系统了。

2010-12-23 16:24:51 linjinlinux 阅读数 54
Windows客户端用SSH Secure Shell Client生成 key.pub

# Linux服务端生成 SSH 需要的目录
cd ~
mkdir ~/.ssh
# 给可执行权限
chmod 700 .ssh
# 编辑SSH配置文件
vi /etc/ssh/sshd_config
# 重启sshd服务
/etc/init.d/sshd restart
# 查看重启端口是否有22
netstat -ntl
# 生成兼容公钥文件
#上传服务端执行
# -i 读取未加密的SSH-2兼容的私钥/公钥文件,然后在 stdout 显示OpenSSH兼容的私钥/公钥。
# 该选项主要用于从多种商业版本的SSH中导入密钥。
# -f filename
# 指定密钥文件名。
ssh-keygen -i -f key.pub >>key

#修改 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
## 修改下列内容
Port 22
Protocol 2
SyslogFacility AUTHPRIV
PubkeyAuthentication yes
AuthorizedKeysFile /root/.ssh/key
PasswordAuthentication no
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
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
X11Forwarding yes
Subsystem sftp /usr/libexec/openssh/sftp-server

#注意第一次 登陆时 PasswordAuthentication 改为 yes 用ssh登陆成功之后再改成 no 重启ssh即可
service sshd restart

# Windows客户端用SSH Secure Shell Client 登陆
2014-09-12 09:11:33 xuziqu 阅读数 1448

通过公钥-密钥方式登陆linux,相当于任何持有不加密的密钥的用户都可以顺利登陆到linux上,这点充分说明了对密钥进行加密的重要性,有人说,原本采用密钥的方式进行登陆就是为了避免繁杂的密码输入过程,采用密钥之后还需要对密钥进一步加密岂不是多此一举,但是putty提供了良好的密钥管理功能,这里小编就暂时不深入讲解。

我们先尝试一下通过在windows下生成公钥-密钥,然后通过putty将公钥上传到linux,再通过windows下的putty按密钥的方式登陆到linux中。

首先,我们要创建公钥和密钥,通过putty工具包中的puttygen密钥生成器来生成我们需要的公钥和密钥,注意,在生成的过程中,我们需要不断地在密钥生成器的空白界面处移动鼠标以便生成足够的随机数来生成公钥-密钥。

公钥-密钥生成后,在windows中保存私钥,然后拷贝密钥生成器的公钥部分,通过putty登陆到linux中,编辑远程登陆的账户用户下的.ssh/authorized_keys,若该文件不存在则自行创建,然后将公钥部分粘贴到文件中,这里可以通过vi进行编辑,在putty中点击右键可以实现粘贴功能。在粘贴的时候需要主要是否有遗漏导致不一致,尤其是开头处,需要的是ssh-rsa不是sh-rsa

创建修改完公钥文件authorized_keys之后需要修改文件的权限,将权限改为644,如果改为700可能导致失效。

最后通过设置putty中连接-SSH-认证,选择刚才创建的私钥文件,然后连接-数据中的自动登陆用户名,最后设置好IP和端口号,点击保存以备以后使用,最后点击打开就可以发现很神奇地直接登陆到linux中,如果先前设置了密钥加密则需要输入相应的加密口令。

PS:这里需要注意的两个地方是公钥的创建过程中,必须确保准确无误,还有就是公钥文件的权限,需要是644,这样才可保证正常使用。


现在我们采用另外一种方式,我们在linux下,使用ssh-keygen -t rsa方式生成了公钥-密钥,注意,这里的公钥文件的后缀有.pub,将公钥保存在~/.ssh/authorized_keys中,同样权限的设置还是为644,然后通过putty工具包中的psftp将对应的私钥文件下载到本地,这样就完成了和上述一样的私钥文件和公钥文件的设置,最后采用和上述一样的登陆过程,同样可以完成采用私钥的方式登陆到linux中。

没有更多推荐了,返回首页