银联养老助残卡购物网点年底需要再注册?还是以发证时间为一年注册?

现在的位置:
>, , >正文
RedHat设置SSH免密码登录
&&&&&&& 如果我们需要远程管理其他机器的话,一般使用远程桌面或者telnet。linxu服务器几乎都是命令行,所以只能使用telnet了。telnet的缺点是通信不加密,非常不安全,只适合于内网访问。为解决这个问题,推出了加密的通信协议,即SSH。SSH的全称是Secure Shell,使用非对称加密方式,传输内容使用rsa或者dsa加密,可以有效避免网络窃听。
&&&&&&& hadoop的进程之间通信使用ssh方式,需要每次都要输入密码。为了实现自动化操作,我们下面配置SSH的免密码登录方式。
&&&&&&& 首先到用户主目录下,如图2-64所示。
&&&&&&& 在“ls -a”命令显示的文件中,最后一列中间一项是“.ssh”,该文件夹是存放密钥的。注意该文件夹是以“.”开头的,是隐藏文件。待会我们生成的密钥都会放到这个文件夹中。
&&&&&&& 现在执行命令,生成密钥,如图2-65所示。
&&&&&&& 解释一下:命令“ssh-keygen -t rsa”表示使用rsa加密方式生成密钥, 回车后,会提示三次输入信息,我们直接回车即可。
&&&&&&& 然后进入密钥文件夹,执行命令,如图2-66所示。
&&&&&&& 其中,命令“cp id_rsa.pub authorized_keys”用于生成授权文件。至此,配置部分完成了。
&&&&&&& 这里为什么要使用ssh登录本机哪?因为hadoop在本机部署时,需要使用ssh访问。
&&&&&&& 注意:文件夹“.ssh”中的三个文件的权限,是有要求的,“自己之外的任何人对每个文件都没有写权限”。另外,“.ssh”文件夹是700权限。如果权限有问题,会造成SSH访问失败。
&&&&&&& 现在开始验证SSH无密码登录,如图2-67所示。
&&&&&&& 执行“ssh localhost”意味着使用“ssh”通信协议访问主机“localhost”,第一次执行时需要确认;第二次不再确认了。这就是无密码登录。当登录到对方机器后,退出使用命令“exit”。这两次操作时,注意观察主机名变化。读者可以执行命令“ssh book0”,验证dns对book0解析是否正确。
&&&&&&& 注意:使用命令ssh时,一定要观察主机名的变化。很多同学在操作ssh时,由于大量的使用ssh登录退出,忘记自己目前在哪台机器了,执行了大量错误的操作。
&&&&&&& 另外,如果多次执行ssh,每次都要输入确认信息的话,说明配置失败了。可以删除文件夹“.ssh”,重新配置。也可以重启虚拟机再配置。只要严格按照上面的步骤操作,保证能够成功的。
&&&&&&& 如果还搞不定,给你个绝招” 删除/etc/udev/rules.d/70-persistent-net.rules文件,重启系统”。
&&&&&&& 配置出错,可以查看/var/log/secure日志文件,找原因。
&&&&&&& 至此,恭喜你,开发环境搭建完工。
EasyQuery的目标是不需要写一行java代码就可以实现非常非常复杂的查询,省时省力,提高效率。
【上篇】【下篇】
您可能还会对这些文章感兴趣!
您必须才能发表留言!
籍贯山东,落户北京,IT行业。
工作经历:
2014年至今&,自主创业
,传智播客
,超人学院
,亚信科技
教育经历:
,中科院研究生院
,河北大学SSH免密码登陆和免ip连接 - 简书
SSH免密码登陆和免ip连接
SSH(Secure Shell)是一种提供网络安全的传输协议。它保证了在网络上的数据并非明文传输,目前使用SSH登录远程终端已经是通用方式。
SSH登录时有两种验证方式
基于密码的安全验证,它要求用户在每次登录服务器时输入密码,服务器端验证通过后即登录成功。
基于密钥的安全验证,客户端的公钥会预先保存在服务器端,当登录时,服务器端会使用该公钥做验证,如果验证成功,用户不需输入密码即完成登录。
为了避免每次都输入密码这种重复性工作,我们选择第二种方式进行远程登录。
基于密钥登录的配置步骤
在本地终端生成密钥对。ssh-keygen // 加密方式默认使用RSA,可以通过 “ssh-keygen -t 加密方式” 指定加密方式
生成过程中会询问设置密钥对的保存位置和打开密码。按enter键使用默认设置即可。此时会在"~/.ssh"目录下生成名为id_rsa和id_rsa.pub的私钥文件和公钥文件。
使用密码登录到服务器端,将公钥字符串copy到"~/.ssh/authorized_keys"文件内。vi ~/.ssh/authorized_keys
// copy 公钥字符串
如果.ssh目录尚未建立,需要先创建并且修改权限:mkdir ~/.ssh
chmod 700 ~/.ssh
如果authorized_keys文件是新创建的,需修改文件权限chmod 600 ~/.ssh/authorized_keys
验证是否设置成功ssh username@server-ip
此时应该能够跳过输入密码的提示,直接登录到远程终端。如果仍然需要输入密码,最有可能的原因是上面第三步文件权限配置的有问题。
配置服务器别名,使用别名代替ip地址
虽然经过上面的配置,我们不用在每次登录时都输入密码。当仍然需要我们输入用户名和服务器ip。有没有可能把这一步骤也省略呢?答案是肯定的,通过配置服务器别名的方式,登录时只需输入别名即可。
打开~/.ssh/config文件,添加以下内容:Host server-alias
# server-alias为SSH链接的服务器别名
HostName server-ip
# 服务器地址
User username
# 服务器端用户名
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# 私钥地址,默认为 ~/.ssh/id_rsa
验证以后即可通过以下命令登录远程服务器ssh server-alias
如果登录未成功,请仔细检查每项的配置是否正确。
经过上述配置,有效的简化了登录操作,会为我们节省不少时间。更重要的是,所有底层使用SSH的程序,都因此而简化了操作步骤。比如:
用于传输文件的scp和rsync命令。只需输入:scp file server-alias:/dir
如果服务器端上配置了git远程仓库,只需输入:git clone server-alias:/git-repo
你会发现除了使用简易的别名代替了ip地址外,输入密码的步骤也被省略掉了!本帖子已过去太久远了,不再提供回复功能。如果你在管理一堆unix机器,每次登录都要输入密码是挺烦的事情,一方面为了安全我们一般不会将所有机器的密码都设置成一样,另一方面就算一样每次都输入一遍也很麻烦。
这种情况下我们一般是用ssh key来代替密码鉴权,也就是无密码登录了。这在scp/sftp传送文件、rsync同步文件、sshfs 映射远端目录时都能带来很大的便利。(另外,通过ssh方式读写github的git库其实也基本是这个原理,只不过提交public key给对方让对方信任是在web界面上进行的。)
1. 基本用法
1.1 基本说明
ssh key是一对密钥文件,一个public key文件是要给放到多端让其加到信任列表的,一个private key是留存本地,在鉴权的时候才需要。
下面的详细说明来自 :
为了帮助验证身份,SSH 有一个密钥管理功能和相关的代理。当配置为公钥身份验证时,您的密钥证明您在远程 SSH 主机上的身份。一个基于 SSH 的身份包括两个部分:一个公钥和一个私钥。私有 SSH 密钥是用于出站 SSH 连接的用户身份,且应当保密。当用户发起一个 SSH 或 SCP 会话到远程主机或服务器时,他或她被认为是 SSH 客户端。通过一个数学算法,一个私钥如同您的电子身份证;公钥如同您向其出示身份证的锁或门机制。您的私钥说,“这真的是 Fred Smythe”;公钥说,“是的,您确实是真正的 Fred Smythe;您已通过身份验证:请进入。”
您的公钥代表您允许通过您的大门或锁进入的人。公钥需要保密;它们不能用于泄漏一个系统或对系统进行未经授权的访问。在一个 Linux 或 UNIX 系统上,这些私有和公共密钥对存储在 ASCII 文本系统中;在 Windows 系统上,一些程序将密钥对存储为文本文件,一些存储在 Windows 注册表中。
1.2 生成密钥对
[ ~]$ /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/fsmythe/.ssh/id_dsa):
Enter passphrase (empty for no passphrase): ******
(Enter 'mypassword')
Enter same passphrase again: ****** (Enter 'mypassword')
Your identification has been saved in /home/fsmythe/.ssh/id_dsa.
Your public key has been saved in /home/fsmythe/.ssh/id_dsa.pub.
The key fingerprint is:
33:af:35:cd:58:9c:11:91:0f:4a:0c:3a:d8:1f:0e:e6
密钥有多种类型(DSA, RSA, ECDSA, ED25519等),上面用的是DSA,不指定类型时ssh-keygen默认类型是RSA.
我们可以生成多个密钥,每个保存在不同的文件中.本例中生成的密钥保存在 /home/fsmythe/.ssh/id_dsa 和 /home/fsmythe/.ssh/id_dsa.pub 中(前者是私钥,后者是公钥)
Passphrase也是一种密码,是在程序读取你的私钥文件时要用到的(即你的私钥文件被加密保存了).如果你想完全自动登录对端(不想交互式输入任何东西)那么这里可以不输入passphrase(直接回车),不过从安全性上面来说并不是太好(更好的办法是采用 ssh-agent 来加载你的密钥(加载时输入passphrase),然后在后面使用过程中就是 ssh-agent 与对端交互,不再需要输入passphrase了)
1.3 配置自动登录
要用这个ssh key自动登录另一个机器的话,需要在本机执行这个:
ssh-copy-id -i ~/.ssh/id_rsa_xxx.pub johndoe@210.32.142.88
(当然,这一次还是要输入密码的.如果你生成密钥时输入了passphrase的话,这里还得输入passphrase)
这样下次就可以直接用 ssh johndoe@210.32.142.88 来直接登录对端机器了.当然 scp johndoe@210.32.142.88:/home/johndoe/.bashrc .也不会再询问你密码,rsync -av johndoe@210.32.142.88:/h[[ome/johndoe/Downloads]] . 也不会.
1.4 参考文档:
(其实内容并不只是适用于 RHEL/CentOS,甚至连 RHEL/CentOS 上典型的selinux的问题(见本文后面的补充说明)都没有提到)
: ( 跟我们这里相关的是中间"" 和 ""这两节 )
2. 各种细节问题
2.1 目录权限问题导致ssh key不被接受
如果你自动登录不成功,在屏幕上见到如下字样:
$ ssh admin@210.32.142.88
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
WARNING: UNPROTECTED PRIVATE KEY FILE!
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/home/johndoe/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/johndoe/.ssh/id_rsa
admin@210.32.142.88's password:
这里的文字已经把原因说得比较清楚了,是 /home/johndoe/.ssh/id_rsa 的权限设置得太宽泛,ssh认为密钥文件可以被其它人读取/拷贝,所以拒绝使用它.解决办法是去除其它人的读写权限(chmod go-rw ~/.ssh/id_rsa )--当然,前提是你确认这个文件没有被被人盗用(或者你不在乎这个).
2.2 RHEL/CentOS的selinux干扰导致登录不成功
对RHEL6服务器配置ssh key自动登录死活不成功,ubuntu就一点问题没有,结果是SELinux在搞鬼,在你排除了其它明显的原因后可以试试这一句(在对端上(即RHEL/CentOS上)执行):
restorecon -Rv /home/myname/.ssh
2.3 没有ssh-copy-id时如何手工设置
也许你会好奇 ssh-copy-id 到底干了什么,或者你的系统上没有这个工具(后面我们将putty key加到openssl信任列表时就会需要了解这个).
其实挺简单,它只是将你的public key 加了对端的 ~/.ssh/authorized_keys 这个文件中(每条密钥一行).
不过这里也有一个细节: 对端的 ~/.ssh 目录和 ~/.ssh/authorized_keys 文件均不能是其它人可以写入的(即为了防止其它人写这个文件来达到登录当前帐号).
所以 ssh-copy-id 的比较完整的手工设置方法是:
$ ssh username@www-03.nixcraft.in &umask 077; mkdir .ssh&
$ cat $HOME/.ssh/id_rsa.pub | ssh username@www-03.nixcraft.in &cat && .ssh/authorized_keys&
2.4 多个服务器需要用不同的ssh key登录
前面说过,我们可以生成多个密钥,每个保存在不同的文件中.ssh-keygen 会询问你保存的位置,你也可以对密钥文件改名(只要两个文件的基本名一致即可).
登录某个服务器时如何指定具体的密钥呢?
ssh -i ~/.ssh/id_rsa_inner
admin@210.32.151.66
scp -i [[~/.ssh/id_rsa_inner]]
admin@210.32.151.66:/home/admin/.bashrc .
ssh-copy-i -i [[~/.ssh/id_rsa_inner]] admin@210.32.151.66
如果你觉得这样比较繁琐,或者像rsync这样的工具并没有提供类似 -i 选项让你指定密钥文件,那么可以配置 ~/.ssh/config 文件来解决
Host 210.32.151.66
IdentityFile ~/.ssh/id_rsa_inner
UserName admin
210.32.142.88
IdentityFile ~/.ssh/id_rsa_bbs
Host 10.93.*
IdentityFile ~/.ssh/id_rsa_group
这种情况下,登录不同的地址就会自动采用不同的密钥了.
2.5 设置默认用户名
不指定用户名时,ssh默认采用当前本地用户名,试图连接对端同名用户。指定的方法有两种:
ssh user@host
ssh -l user host
第一种方法更常用一些,比如rsync, scp等均支持.
不想在命令行里面指定的,也可以编辑 ~/.ssh/config,在相应的 Host 下面配置 UserName 即可(参考上一节的例子).
2.6 putty怎么无密码登录
这里有几个问题:
如何指定用哪个key来登录某个服务器;
PuTTY的密钥生成工具puttygen所生成的密钥文件是自己的格式(一般只需要保存私钥文件,扩展名为 ppk,其实里面包含了公钥数据和私钥数据.puttygen并不强行要求你单独保存 public key文件).
PuTTY并没有提供类似 ssh-copy-id 这样的工具,要将自己的public key加到对端的信任列表里面得自己动手
这几个问题的答案是:
在 Session 的设置界面里面 Connection-&SSH-&Auth-&Private key file for authentication 指定,它只接受它自己的 ppk 格式
如果你的key只有少数几个,都要用来登录很多个服务器,那么不必在所有session里面一个个地设置,可以预先用 pageant 工具加载你的常用ppk,然后putty登录时会自动跟pageant联系,只有用里面的key登录失败之后才会让你输入密码(这与openssh里面ssh-agent原理差不多)
用puttygen工具打开ppk文件,即可看到对应的public key;也可以将openssh的ssh-keygen生成的私钥转换成putty ppk(在puttygen工具的菜单 Conversions-&Import key)
自己用上面的方法将public key写入对端的 .ssh/authorized_keys 文件(每个key一行,注意保证目录和文件权限均是700)
2.7 passphrase与ssh agent
前面说过生成ssh key的时候,从安全的角度来讲,是应该指定 passphrase 的,不过这样一来,每次用这个key登录服务器的时候,都需要输入一遍 passphrase,这比较烦人.
解决的办法就是用ssh agent(putty的对应工具叫 pageant),它负责加载你的ssh key,你只在这个时候需要输入 passphrase,然后ssh/scp这些工具都是跟ssh agent联系了.
原理并不复杂,但openssh的ssh agent用起来还是有点麻烦的 (想了解的可以阅读:SSH 安全性和配置入门 :
),所以你可以从putty的pageant开始了解如何使用,因为你只需要在图形界面操作几下而已,详细说明请阅读:.你掌握了putty pageant的用法之后再来看openssh agent就比较简单了. (P.S. putty其实也是有linux版本的)
3. 其它参考文档
阅读(...) 评论()

我要回帖

更多关于 北京通养老助残卡 的文章

 

随机推荐