开启sshd服务,开启双向免密登录

来源:互联网 发布:安卓好用的录音软件 编辑:程序博客网 时间:2024/05/21 04:17

1、查卡服务是否启用,如果启用直接跳至第5步

ps -ef | grep ssh

2、如果没有启用 则要安装

yum install openssh-server

或者

yum install ssh

3、安装完之后开启

service sshd start    开启ssh服务service sshd stop    停止ssh服务service sshd restart   重启ssh服务

或者使用使用带有路径的脚本:

/etc/init.d/sshd start/etc/init.d/sshd stop/etc/init.d/restart

4,设置sshd为系统自动启动

chkconfig sshd on

5、使用ssh命令远程登录Linux主机

格式:ssh [-l login_name] [-p port] [user@]hostname,然后输入密码即可实现登录

ssh 192.168.0.1ssh -l root 192.168.0.1ssh root@192.168.0.1ssh -p 22 192.168.0.1ssh -l root -p 22 192.168.0.1ssh -p 22 root@192.168.0.1

6、修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口或禁止root登录等

修改端口号

vi /etc/ssh/sshd_config

找到#Port 22,去掉注释,修改成一个其它端口号,比如:Port 33333

禁用root登录,依据需求设置

vi /etc/ssh/sshd_config

找到#PermitRootLogin yes,去掉注释,修改为:PermitRootLogin no

修改保存后,需重启sshd服务,命令:service sshd restart

7、修改/etc/ssh/sshd_config,实现ssh免密登录

vi /etc/ssh/sshd_config

找到

#RSAAuthentication yes#PubkeyAuthentication yes#AuthorizedKeysFile     .ssh/authorized_keys

修改为

RSAAuthentication yesPubkeyAuthentication yesAuthorizedKeysFile     .ssh/authorized_keys

修改保存后,需重启sshd服务,命令:service sshd restart

8、实现SSH无密码登录,A机器192.168.194.10,B机器192.168.194.30

8.1、
在A、B机器新增hadoop用户,以A机器为例,命令如下:

    [root@192.168.194.10 ~]# adduser hadoop    [root@192.168.194.10 ~]# 

为新创建的用户设置密码,命令如下:

    [root@192.168.194.10 ~]# passwd hadoop    更改用户 hadoop 的密码 。    新的 密码:    无效的密码: 过于简单化/系统化    无效的密码: 过于简单    重新输入新的 密码:    passwd: 所有的身份验证令牌已经成功更新。    [root@192.168.194.10 ~]# 

注意:如果新增用户时使用-p参数同步添加密码,然后直接使用输入的密码是无法登录的,原因如下:

用户的密码都是以密文的形式保存在/etc/shadow文件中的

登录的时候,输入明文密码,linux会将明文密码转换成密文密码,去/etc/shadow文件对比,能比对上就可以登录

新增用户时,-p 参数后面设置的密码值会以输入形式直接保存进/etc/shadow文件中,比如你输入123456,那么/etc/shadow文件中保存的也是123456,

那么登录的时候,输入123456,linux会把它转换为密文,比如:$6$oLAqEGZz$qOy6EtgZnrFY3l7GcpIrVXjrhbeh/16LdDo0UoDxt5TztM8r2V7TorlkMTAJVhWPVN3Tu.J8xIfR3hop/uBlF/,但是/etc/shadow文件中保存确实123456,所以你永远也不会登录成功

解决的办法就是,先用adduser或者useradd命令添加用户,不带-p参数,然后用passwd命令更新设置密码

同时注意:
多台服务器之间用户想要实现双向无密登录,使用的用户需保持一致,比如都是root或者都是hadoop或者任意自定义的其它名,否则出现因权限问题无法实现免密登录

8.2、
切换至需要无密登录的用户,命令:su - hadoop

在A、B机器上生成公钥和私钥,命令及结果如下(过程一路回车):

    [hadoop@localhost ~]$ ssh-keygen -t rsa    Generating public/private rsa key pair.    Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):     Created directory '/home/hadoop/.ssh'.    Enter passphrase (empty for no passphrase):     Enter same passphrase again:     Your identification has been saved in /home/hadoop/.ssh/id_rsa.    Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.    The key fingerprint is:    15:63:b8:cb:d1:7d:4b:28:15:40:66:95:26:b1:64:d0 hadoop@localhost.localdomain    The key's randomart image is:    +--[ RSA 2048]----+    |        .=%+oo   |    |        .*E++    |    |         oo= .   |    |        o.o o o  |    |       .So . o . |    |        o     .  |    |                 |    |                 |    |                 |    +-----------------+
在这个`/home/hadoop/.ssh/`目录下,生产了两个公钥和私钥文件:id_rsa和id_rsa.pub
    [hadoop@localhost ~]$ cd /home/hadoop/.ssh/   --或者 cd ~/.ssh/    [hadoop@localhost .ssh]$ ll    总用量 8    -rw-------. 1 hadoop hadoop 1675 624 22:25 id_rsa    -rw-r--r--. 1 hadoop hadoop  410 624 22:25 id_rsa.pub

8.2、在A机器上导入公钥到认证文件(与公钥文件所属同目录)

    [hadoop@localhost .ssh]$ cat id_rsa.pub >> authorized_keys    [hadoop@localhost .ssh]$ ll    总用量 12    -rw-rw-r--. 1 hadoop hadoop  410 624 22:33 authorized_keys    -rw-------. 1 hadoop hadoop 1675 624 22:25 id_rsa    -rw-r--r--. 1 hadoop hadoop  410 624 22:25 id_rsa.pub

8.3、将A机器(此时作为客户端)的认证文件上传到远程B(此时作为服务器)机器,实现A机器远程访问B机器,可以无密登录到B机器,此时还是需要输入一次密码的:

    [hadoop@192.168.194.10 .ssh]$ scp authorized_keys hadoop@192.168.194.30:/home/user/.ssh/authorized_keys     The authenticity of host '192.168.194.30 (192.168.194.30)' can't be established.    RSA key fingerprint is bd:97:17:12:79:db:b7:78:66:43:5a:d8:bc:29:b3:86.    Are you sure you want to continue connecting (yes/no)? yes    Warning: Permanently added '192.168.194.30' (RSA) to the list of known hosts.    user@192.168.194.30's password:     authorized_keys    

8.4、在B机器(远程机器)上给复制过来的认证文件赋予权限

    [hadoop@localhost .ssh]$ chmod 644 authorized_keys

8.5、测试,在A机器上远程登录B机器:

    [hadoop@192.168.194.10 .ssh]$ ssh hadoop@192.168.194.30    Last login: Fri Jun 30 17:36:43 2017 from 192.168.194.10    [user@192.168.194.30 ~]$ 

8.6、退出远程机器B,回到客户端机器A,命令:

    [hadoop@192.168.194.30 ~]$ exit    logout    Connection to master closed.    [hadoop@192.168.194.10 .ssh]$ 

8.7、要实现从B机器远程登录到A机器,重复8.2之后的步骤,所有在A机器操作的步骤换到B机器

原创粉丝点击