Linux实现免密登录之路
Linux 免密登录是Linux中通过利用密钥登录到其他Linux机器上进行操作,而不需要输入用户名和密码。从组织管理的角度出发,不仅可以提高帐户和密码安全,而且还可以提高管理效率。本文将介绍如何在 Linux 中实现免密登录。
要实现 Linux 免密登录,需要先分别在两台主机上生成对应的密钥对,由私钥和公钥组成,公钥被授权于另一台机器,当另一台主机确认后,就可以完成登录,免去账户输入密码的麻烦。首先,使用 ssh-keygen 命令来生成密钥对,使用-t 参数指定加密算法,如 ssh-keygen -t rsa。
然后在本地机器上将公钥文件传输到另一台机器上,具体的步骤为:
1.将本地公钥复制到剪贴板:cat ~/.ssh/id_rsa.pub
2.使用 SSH 命令在远程计算机上登录:ssh @
3.登录远程计算机后,编辑 .ssh/authorized_keys 文件:vi .ssh/authorized_keys
4.将剪贴板中的公钥复制到 authorized_keys 文件中,保存退出
最后,在本地机器上使用 ssh 登录远程计算机即可实现免密登录:ssh -i ~/.ssh/id_rsa @
以上是在Linux操作系统实现免密登录的具体步骤,在Linux 服务器 管理安全管理中,可以将当前用户授权前准入,以此来限制不必要的操作,以达到更好的安全管理效果。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
Linux中显示自己登录的用户用那个命令?
login name:登录用户名;terminal line:使用终端设备;login time:登录到系统的时间。 下面对who命令的常用参数进行说明。 -m它的效果同who am i显示出自己在系统中的用户名,登录终端,登录时间-q只显示用户的登录帐号和登录用户的数量-s忽略,它同于who-r可以查看当前系统的运行级别 run-level 3 Apr 21 09:37 last=S-H,--heading 显示一行列标题。 常用的标题如表4-2所示。 三, whoami 命令只显示出自己在系统中的用户名四, who am i 命令显示出自己在系统中的用户名,登录终端,登录时间 可以查看自己登录到系统中的用户名,它同logname一样。 五, logname 命令可以显示自己登录到系统中的用户名六, last 命令可以查看上次自己登录的时间,当然root可以查看其他用户登录的情况。 last -n user 可以看user前n次登录的情况七, tty命令 可以使用tty来报告所连接的设备或终端
Linux/Ubuntu 怎么设置打开远程桌面登录连接
一、安装XrdpWindows远程桌面使用的是RDP协议,所以ubuntu上就要先安装Xrdp,在ubuntu软件中心搜索xrdp安装。 安装xrdp的同时会自动安装vnc4server,xbase-clients组件或者终端命令行输入安装: sudo apt-get install xrdp vnc4server xbase-clients二、设置开启安装完后在/usr/share/applications目录下打开”桌面共享”选项,进一步设定桌面共享选项中首先要开启共享,关于是否允许其他用户控制,远程连接时是否需要本机确认,远程连接的密码等项目根据需要自己设定。 如果需要从公网即外部网络访问此ubuntu计算机需要开启”自动配置UPnP路由器开放和转发端口项目”。 一般建议如下图:如果是13.04的话,以上已经完成设置了,但是ubuntu14.04是无法正确连接的,会显示安全等级问题,我们还需要继续配置1、安装dconf-editorsudo apt-get install dconf-editor2、用Dconf-editor调整,并访问如下配置路径org > gnome > desktop > remote-access3、取消钩选 “requlre-encryption”属性。 三、开始连接在windows电脑上打开远程桌面,输入ubuntu电脑的IP地址,会出现如下画面,Module项目选择使用的协议,这里选择vnc-any,输入IP地址,端口不变(5900),设定的密码,即可远程连接到ubuntu 14.04桌面,如下图:

如何配置ssh免密码登录
1. 基本用法1.1 基本说明ssh key是一对密钥文件,一个public key文件是要给放到多端让其加到信任列表的,一个private key是留存本地,在鉴权的时候才需要。 下面的详细说明来自 SSH 安全性和配置入门:为了帮助验证身份,SSH 有一个密钥管理功能和相关的代理。 当配置为公钥身份验证时,您的密钥证明您在远程 SSH 主机上的身份。 一个基于 SSH 的身份包括两个部分:一个公钥和一个私钥。 私有 SSH 密钥是用于出站 SSH 连接的用户身份,且应当保密。 当用户发起一个 SSH 或 SCP 会话到远程主机或服务器时,他或她被认为是 SSH 客户端。 通过一个数学算法,一个私钥如同您的电子身份证;公钥如同您向其出示身份证的锁或门机制。 您的私钥说,“这真的是 Fred Smythe”;公钥说,“是的,您确实是真正的 Fred Smythe;您已通过身份验证:请进入。 ”您的公钥代表您允许通过您的大门或锁进入的人。 公钥需要保密;它们不能用于泄漏一个系统或对系统进行未经授权的访问。 在一个 Linux 或 UNIX 系统上,这些私有和公共密钥对存储在 ASCII 文本系统中;在 Windows 系统上,一些程序将密钥对存储为文本文件,一些存储在 Windows 注册表中。 1.2 生成密钥对 [ ~]$ /usr/bin/ssh-keygen -t dsaGenerating public/private dsa key file in which to save the key (/home/fsmythe//id_dsa):Enter passphrase (empty for no passphrase): ******(Enter mypassword)Enter same passphrase again: ****** (Enter mypassword)Your identification has been saved in /home/fsmythe//id_ public key has been saved in /home/fsmythe//id_ key fingerprint is:33:af:35:cd:58:9c:11:91:0f:4a:0c:3a:d8:1f:0e:e6 [ ~]$密钥有多种类型(DSA, RSA, ECDSA, ED等),上面用的是DSA,不指定类型时ssh-keygen默认类型是RSA.我们可以生成多个密钥,每个保存在不同的文件中.本例中生成的密钥保存在 /home/fsmythe//id_dsa 和 /home/fsmythe//id_中(前者是私钥,后者是公钥)Passphrase也是一种密码,是在程序读取你的私钥文件时要用到的(即你的私钥文件被加密保存了).如果你想完全自动登录对端(不想交互式输入任何东西)那么这里可以不输入passphrase(直接回车),不过从安全性上面来说并不是太好(更好的办法是采用 ssh-agent 来加载你的密钥(加载时输入passphrase),然后在后面使用过程中就是 ssh-agent 与对端交互,不再需要输入passphrase了)1.3 配置自动登录要用这个ssh key自动登录另一个机器的话,需要在本机执行这个: ssh-copy-id -i ~//id_rsa_ johndoe@210.32.142.88(当然,这一次还是要输入密码的.如果你生成密钥时输入了passphrase的话,这里还得输入passphrase)这样下次就可以直接用 ssh johndoe@210.32.142.88 来直接登录对端机器了.当然 scp johndoe@210.32.142.88:/home/johndoe/ .也不会再询问你密码,rsync -av johndoe@210.32.142.88:/h[[ome/johndoe/Downloads]] . 也不会.1.4 参考文档:如何在 centos / RHEL 上设置 SSH 免密码登录 (其实内容并不只是适用于 RHEL/CentOS,甚至连 RHEL/CentOS 上典型的selinux的问题(见本文后面的补充说明)都没有提到)SSH 安全性和配置入门: ( 跟我们这里相关的是中间"SSH 的私钥和公钥对" 和 "配置公私 SSH 密钥对的步骤"这两节 )2. 各种细节问题2.1 目录权限问题导致ssh key不被接受如果你自动登录不成功,在屏幕上见到如下字样:$ ssh admin@210.32.142.88@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: UNPROTECTED PRIVATE KEY FILE!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Permissions 0755 for /home/johndoe//id_rsa are too is required that your private key files are NOT accessible by private key will be permissions: ignore key: /home/johndoe//id_rsaadmin@210.32.142.88s password:这里的文字已经把原因说得比较清楚了,是 /home/johndoe//id_rsa 的权限设置得太宽泛,ssh认为密钥文件可以被其它人读取/拷贝,所以拒绝使用它.解决办法是去除其它人的读写权限(chmod go-rw ~//id_rsa )--当然,前提是你确认这个文件没有被被人盗用(或者你不在乎这个).2.2 RHEL/CentOS的selinux干扰导致登录不成功对RHEL6服务器配置ssh key自动登录死活不成功,ubuntu就一点问题没有,结果是SELinux在搞鬼,在你排除了其它明显的原因后可以试试这一句(在对端上(即RHEL/CentOS上)执行): restorecon -Rv /home/myname/ 参考: Cant get SSH public key authentication to work - Server Fault2.3 没有ssh-copy-id时如何手工设置也许你会好奇 ssh-copy-id 到底干了什么,或者你的系统上没有这个工具(后面我们将putty key加到openssl信任列表时就会需要了解这个).其实挺简单,它只是将你的public key 加了对端的 ~//authorized_keys 这个文件中(每条密钥一行).不过这里也有一个细节: 对端的 ~/ 目录和 ~//authorized_keys 文件均不能是其它人可以写入的(即为了防止其它人写这个文件来达到登录当前帐号).所以 ssh-copy-id 的比较完整的手工设置方法是:$ ssh umask 077; mkdir $ cat $HOME//id_ | ssh cat >> /authorized_keys参考: Install / Append SSH Key In A Remote Linux / UNIX Servers Authorized_keys2.4 多个服务器需要用不同的ssh key登录前面说过,我们可以生成多个密钥,每个保存在不同的文件中.ssh-keygen 会询问你保存的位置,你也可以对密钥文件改名(只要两个文件的基本名一致即可).登录某个服务器时如何指定具体的密钥呢? ssh -i ~//id_rsa_inneradmin@210.32.151.66scp -i [[~//id_rsa_inner]]admin@210.32.151.66:/home/admin/ -copy-i -i [[~//id_rsa_inner]] admin@210.32.151.66如果你觉得这样比较繁琐,或者像rsync这样的工具并没有提供类似 -i 选项让你指定密钥文件,那么可以配置 ~//config 文件来解决Host 210.32.151.66 IdentityFile ~//id_rsa_inner UserName adminHost bbs1HostName210.32.142.88IdentityFile ~//id_rsa_bbsHost 10.93.*IdentityFile ~//id_rsa_group这种情况下,登录不同的地址就会自动采用不同的密钥了.
发表评论