- 浏览: 659417 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
HkEndless:
不好意思,请问这确定是回调机制吗。你的例子中只是将接口的实现类 ...
Spring CallBack回调机制介绍 -
hanmiao:
写的真乱啊,完全不知所云...
Java如何调用可执行文件和批处理命令 -
junia_1:
junia_1 写道 shock: ...
为什么要使用EJB -
junia_1:
shock:
为什么要使用EJB -
coollifer:
不错
SQL Server数据导入到Oracle中的方法
通过linux系统,登陆Linux服务器来实现昨天的四种认证方式。
更多的内容,我们不说了,直接进入主题,但之前要确保有两台Linux系统来进行此实验,而且要是连通的哦。本文是通过CentOS5(IP:192.168.6.19 hostname:test.opsers.org [root@test ~]# )来连接RHEL6(IP:192.168.6.10 hostname:yufei.opsers.org [root@yufei ~]# )服务器。下面进入正题:
1、用户名+密码认证
在CentOS5上进行操作
[root@test ~]# ssh root@192.168.6.10
The authenticity of host '192.168.6.10 (192.168.6.10)' can't be established.
RSA key fingerprint is 8c:b0:8a:bc:d1:ca:fc:74:32:5c:a7:e7:0d:59:76:43.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.6.10' (RSA) to the list of known hosts.
root@192.168.6.10's password:
Last login: Mon Apr 25 13:59:19 2011
[root@yufei ~]#
让我们退出RHEL6系统,回到RHEL5环境中
[root@yufei ~]# exit
logout
Connection to 192.168.6.10 closed.
[root@test ~]#
这个就不用多说,自己输入输入名和密码登陆就OK。我们主要来讲下面三种认证方式。
2、密钥认证
在CentOS5上进行操作
创建无密码的密钥
[root@test ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
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:
fc:c9:fe:e9:a0:d4:30:96:28:0a:f9:c6:e4:8d:ec:0a root@test.opsers.org
[root@test ~]#
把公钥上传到RHEL6服务器上
[root@test ~]# ssh-copy-id -i .ssh/id_rsa.pub 192.168.6.10
15
root@192.168.6.10's password:
Now try logging into the machine, with "ssh '192.168.6.10'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
在RHEL6上操作
确定上传来的文件是存在的
[root@test ~]# ssh root@192.168.6.10
root@192.168.6.10's password:
Last login: Mon Apr 25 14:00:51 2011 from 192.168.6.19
[root@yufei ~]# ls -l .ssh/authorized_keys
-rw-------. 1 root root 402 4月 25 14:06 .ssh/authorized_keys
[root@japie ~]#
说明文件上传成功
配置sshd_config
[root@japie ~]# cd /etc/ssh/
[root@japie ssh]# cp sshd_config sshd_config.bak
[root@japie ssh]# vim sshd_config
把下面的两行注释去掉
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存后,重新启动sshd服务
[root@japie ssh]# service sshd restart
[root@japie ssh]# exit
logout
Connection to 192.168.6.10 closed.
退出RHEL6系统,回到RHEL5环境中
[root@test ~]# ssh root@192.168.6.10
Last login: Mon Apr 25 14:07:29 2011 from 192.168.6.19
[root@japie ~]#
已经无需输入密码直接登陆了
让我们退出RHEL6系统,回到RHEL5环境中
[root@japie ~]# exit
logout
Connection to 192.168.6.10 closed.
[root@test ~]#
3、密钥+密钥密码认证
在CentOS5上进行操作
重新生成密钥,并设置带密码的密钥
[root@test ~]# rm -fr .ssh
[root@test ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:
26:88:da:e1:72:a8:a5:f8:6a:a3:d7:4c:eb:64:1c:5d root@test.opsers.org
上传公钥
[root@test ~]# ssh-copy-id -i .ssh/id_rsa.pub 192.168.6.10
15
The authenticity of host '192.168.6.10 (192.168.6.10)' can't be established.
RSA key fingerprint is 8c:b0:8a:bc:d1:ca:fc:74:32:5c:a7:e7:0d:59:76:43.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.6.10' (RSA) to the list of known hosts.
root@192.168.6.10's password:
Now try logging into the machine, with "ssh '192.168.6.10'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
[root@test ~]#
这时候会自动覆盖掉我们前面上传的公钥文件,我们再来给大家看一下公钥的属性
[root@test ~]# ssh root@192.168.6.10
Enter passphrase for key '/root/.ssh/id_rsa':
Last login: Mon Apr 25 14:12:17 2011 from 192.168.6.19
[root@yufei ~]# ls -l .ssh/authorized_keys
-rw-------. 1 root root 804 4月 25 14:19 .ssh/authorized_keys
[root@japie ~]#
我们输入刚才设置的密码,已经能正常登陆了,而且此公钥文件属性也是新创建的。
注意:
a、如果说,你没有对上传的公钥做修改的话,我们在RHEL6服务器上对配置文件什么也不用做(上一个实验已经做过了)。直接可以用了。
b、我们没有退出RHEL6服务器的环境,因为下面一个认证还需要对SSH的配置文件做修改
4、SSH代理:密钥+密钥密码、但无需输入密码
接着上面的结果继续在RHEL6服务器上操作
[root@japie ~]# vim /etc/ssh/sshd_config
AllowAgentForwarding yes
把前面的注释去掉
然后重新启动sshd服务
[root@japie ~]# service sshd restart
退出RHEL6服务器环境,回到CentOS5中来
[root@japie ~]# exit
logout
Connection to 192.168.6.10 closed.
[root@test ~]#
在CentOS5上进行操作
[root@test ~]# ssh-agent bash
[root@test ~]# ssh-add
Enter passphrase for /root/.ssh/id_rsa:
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
[root@test ~]#
登陆测试
[root@test ~]# ssh root@192.168.6.10
Last login: Mon Apr 25 14:27:15 2011 from 192.168.6.19
[root@japie ~]#
我们已经无需密码正常登陆上了
我们还是退出RHEL6服务器,回到CentOS5上来
[root@japie ~]# exit
logout
Connection to 192.168.6.10 closed.
[root@test ~]#
这里有一个问题:当我们退出shell环境后,还需要执行一下ssh-agentbash和ssh-add才能正常使用,有没有一个办法,让我们不用执行这两个命令,直接输入认证密码就能登陆呢?我下面给出两种实现方法,大家可以根据自己的喜好来实现。
第一种方法:在/etc/profile.d/下创建一个文件,如我起名ssh-agent.sh
[root@test ~]# vim /etc/profile.d/ssh-agent.sh
#!/bin/sh
if [ -f ~/.agent.env ]; then
. ~/.agent.env >/dev/null
if ! kill -0 $SSH_AGENT_PID >/dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent..."
eval `ssh-agent |tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent..."
eval `ssh-agent |tee ~/.agent.env`
ssh-add
fi
这时候,我们退出SHELL后,重新登陆SHELL后,会出现下面的提示
Xshell:\> ssh root@192.168.6.19
Connecting to 192.168.6.19:22...
Connection established.
Escape character is '^@]'.
Last login: Mon Apr 25 15:12:40 2011 from 192.168.6.1
我们再登陆RHEL6服务器还是能正常连接的,而且无需再次输入密码了
[root@test ~]# ssh root@192.168.6.10
Last login: Mon Apr 25 14:31:06 2011 from 192.168.6.19
[root@japie ~]#
我们还是先退出RHEL6服务器,回到CentOS5上来
[root@japie ~]# exit
logout
Connection to 192.168.6.10 closed.
[root@test ~]#
第二种方法:用keychain来实现
首先下载软件,目前最新版本是2.7.1
[root@test ~]# wget http://www.funtoo.org/archive/keychain/keychain-2.7.1.tar.bz2
然后进行软件的安装
[root@test ~]# tar jxvf keychain-2.7.1.tar.bz2
[root@test ~]# cd keychain-2.7.1
[root@test keychain-2.7.1]# install -m 0755 keychain /usr/bin/
或者是直接拷贝keychain到/usr/bin/目录下,都是一样的效果
然后编辑用户家目录下的.bash_profile文件
[root@test keychain-2.7.1]# cd
[root@test ~]# vim .bash_profile
在最后加入下面内容
eval `keychain --eval --agents ssh id_rsa`
删除我们第一种方法创建的文件
[root@test ~]# rm -f /etc/profile.d/ssh-agent.sh
退出SHELL,再次登陆测试
[root@test ~]# exit
Xshell:\> ssh root@192.168.6.19
Connecting to 192.168.6.19:22...
Connection established.
Escape character is '^@]'.
Last login: Mon Apr 25 15:02:10 2011 from 192.168.6.1
* keychain 2.7.1 ~ http://www.funtoo.org
* Found existing ssh-agent: 4133
* Known ssh key: /root/.ssh/id_rsa
[root@test ~]# ssh root@192.168.6.10
Last login: Mon Apr 25 15:02:55 2011 from 192.168.6.19
[root@japie ~]# exit
logout
Connection to 192.168.6.10 closed.
[root@test ~]#
注:
a、ssh root@192.168.6.19这种方式来接连,如果再打开一个会话的话,就还需要输入一次密码。
b、如果重新启动系统后,就需要输入一次密钥密码。
说明:不知道有没有一种方法,能让系统重新启动过后,也无需输入密钥密码,如果有朋友知道的,希望能分享一下,谢谢!
发表评论
-
Linux 共享库:LD_LIBRARY_PATH 与ld.so.conf
2012-04-14 00:48 1698LD_LIBRARY_PATH Linux环境变量名,该 ... -
Linux系统下查找大文件或目录的技巧
2012-01-09 11:34 1093当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否删 ... -
Linux中如何杀掉僵尸进程
2012-01-08 11:06 11541检查当前僵尸进程信息 $ ps -ef | grep de ... -
Linux系统中增加Swap分区大小
2012-01-07 22:22 12381、检查当前的分区情况: [root@localho ... -
Linux系统调优:提高磁盘吞吐量
2011-10-28 23:13 2603在LINUX系统中,如果有大量读请求,默认的请求队列或许应付不 ... -
ssh密钥对的自动登录
2011-10-30 02:34 1524说明: 什么是基于ssh密钥对的自动登录? 下面从整体上 ... -
利用shell和iptables实现自动拒绝恶意试探连接SSH服务
2011-10-06 16:49 1103利用shell和iptables实现自动拒绝恶意试探连接SSH ... -
Linux系统下比较两个文件并删除相同部分
2011-10-04 22:17 1394方法一: comm -23 file1 file2 ... -
redhat 内核参数意思
2011-08-31 01:23 1726一、前言 本文档针对OOP8生产环境,具体优化策略需要根据实 ... -
Linux裸设备总结
2011-08-29 19:56 13361、什么裸设备?字符设 ... -
linux nfs配置概要
2011-08-29 19:11 932利用nfs 可以共享系统中的指定文件夹给网络中的其它机器。我们 ... -
linux操作系统下NTP服务器配置
2011-08-25 09:23 1768Network Time Protocol(NTP ... -
优化Linux生产服务器的经验之谈
2011-08-23 21:21 1390一、时间同步 生产环境下的服务器对时间的要求是精准的,编辑 ... -
NTP服务器安装手记
2011-08-23 21:13 1545NTP服务器安装手记随着时间的推移,计算机的时钟会倾向于漂移。 ... -
Linux下oracle常见安装错误总结
2011-08-23 20:37 1564错误一: /tmp/OraInstall2007-1 ... -
LVM创建
2011-08-23 18:42 1439LVM (有点像 WIN 下的动态磁盘, ... -
chkconfig --add httpd
2011-08-22 10:07 1500Apache 无法自动启动, 1 、将 apa ... -
Linux下cache内存释放
2011-08-22 08:59 776/proc是一个虚拟文件系统,我们可以通过对它的读写操作做 ... -
Linux系统不响应SYN包的解决办法
2011-08-22 00:29 2284关于syn为什么没有回应的问题真是郁闷了好久。 现象就是在客户 ... -
Linux下使用Yum管理本地软件包(repository)
2011-08-21 23:52 1802在Linux系统的维护中,Linux软件包之间的依赖性是一件令 ...
相关推荐
为了在Linux上配置基于密钥认证的SSH,首先你需要生成SSH密钥对。在本地系统上,可以运行`ssh-keygen`命令来生成默认为2048位的RSA密钥对。在执行该命令时,系统可能会提示输入一个密码或passphrase,这有助于增加...
本文将详细讲解如何通过SSH密钥对和SSH代理来连接Linux服务器,以实现更安全、便捷的管理。 首先,了解SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH密钥对认证是SSH...
该项目旨在通过允许从的内部访问Windows自己的ssh-agent服务持有的SSH密钥来纠正这种情况。 我的第一次尝试成功,但是由于Windows互操作限制,因此需要在WSL端进行详尽的生命周期管理。 Windows从内部版本17063...
其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。 语法格式: ssh-agent [参数] 常用参数:...
在Linux环境中,SSH(Secure Shell)是一种用于安全远程登录到服务器的标准协议,它允许...正确配置和使用SSH密钥对、SSH配置文件、密钥代理和集中式密钥管理工具,可以有效提升系统的安全性,同时简化日常运维工作。
智能卡帮助脚本 gpg-agent-functions.sh 从~/.bash_profile此脚本(由于使用launchctl getenv来获取$SSH_AUTH_SOCK的...函数gpg-agent-up和gpg-agent-down然后启动和停止gpg-agent然后根据需要重新链接~/.ssh_aut
SSH代理助手在Windows上使用CMD,PowerShell等中的SSH密钥它可以解决什么问题? 如果要在命令提示符( cmd )或PowerShell中将ssh与SSH密钥(或通过SSH密钥进行身份验证的git )一起使用,则必须在终端上使用启动...
4. **配置SSH-Agent**:为了简化SSH密钥的使用,库可能包含了配置SSH-Agent的能力,这样用户就不需要每次都手动输入密码。 5. **自动化流程**:对于开发语言和运维相关的任务,例如自动部署、持续集成等,`github_...
公钥认证是SSH的一种安全登录方式,用户在服务器上放置公钥,本地保留私钥。这样,只需输入私钥的密码即可登录,无需每次输入密码。 6. **SSH隧道** SSH支持隧道功能,可以将任意TCP连接通过SSH加密,比如创建...
ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。 语法格式:ssh-add [参数] 常用参数: -D 删除ssh-agent中的所有密钥 -d 从ssh-agent中的删除密钥 -l 显示ssh-agent中...
#### 三、SSH密钥管理 - **私钥与公钥的概念**: - **私钥**:通常存储在客户端,用于解密从服务器发送来的信息。 - **公钥**:则被放置在服务器端,用于加密从客户端发送来的信息。 - **密钥生成**: - 可以使用...
go-ssh-agent-locker go-ssh-agent-locker 是一个简单的应用程序,只要钥匙串被锁定,它就会杀死 ssh-agent安装 go get github.com/MDrollette/go-ssh-agent-lockercp $GOPATH/bin/go-ssh-agent-locker /usr/local/...
要将此映像与,您需要使用环境变量JENKINS_AGENT_SSH_PUBKEY而不是作为启动参数来传递公共SSH密钥。 在“ Docker模板”的“环境”字段(高级部分)中,只需添加: JENKINS_AGENT_SSH_PUBKEY= 不要在公钥周围加上...
在Linux系统中,使用RSA密钥...通过以上步骤,你可以实现Linux系统使用RSA密钥登录远程服务器,大大提高了远程访问的安全性和便利性。在实际工作中,了解和掌握这种认证方式对于提升工作效率和保障系统安全都至关重要。
- 如何在Linux系统中生成SSH密钥对? 2. **SSH配置:** - 如何配置SSH服务,使其只允许特定用户登录? - 如何设置SSH端口号以提高安全性? - 什么是SSH配置文件`/etc/ssh/sshd_config`,如何通过修改它来定制...
标题"Python-MacOS和Linux上的命令行ssh管理工具"暗示了我们将使用Python编程语言创建一个命令行工具,该工具可以在Mac OS和Linux系统上简化SSH连接和管理的过程。Python因其简洁、易读的语法和丰富的库支持而成为...
1. 在Linux服务器上生成SSH密钥对:使用`ssh-keygen`命令生成公钥和私钥,通常默认存储在`~/.ssh`目录下。 2. 将公钥复制到Linux服务器:使用`ssh-copy-id`命令将本地的公钥复制到远程服务器的`~/.ssh/authorized_...
SSH命令是Linux和Unix-like系统中广泛使用的工具,它允许用户通过命令行界面进行远程操作。本文将深入探讨SSH命令以及其密钥认证机制。 ### SSH命令基础 SSH命令的基本用法是`ssh [user@]hostname`,其中`user`是...
iam-ssh-agent旨在用于不太受信任的连续集成环境中,在该环境中,您想使用ssh密钥来克隆源代码控制存储库而无需提供原始密钥材料。 iam-ssh-agent分为两个部分:一个二进制文件,它通过ssh-agent协议绑定unix域套...
### SSH密钥对认证 1. **生成密钥对**:SSH支持公钥/私钥对认证,提供比密码更安全的认证方式。使用`ssh-keygen`命令生成一对密钥,通常将公钥放置在远程服务器的`~/.ssh/authorized_keys`文件中。 2. **复制公钥*...