赞
踩
很多时候服务器并没有服务器,我们也不能每次都通过控制台去管理服务器,这时候就需要远程登录,相比于Telnet,SSH采用密文传输更加安全。
- #ssh 登录用户@登录服务器IP
- [root@localhost ~]# ssh zt@192.168.23.133
注:指定的用户必须在登录服务器上存在否则出现如下情况,无论密码正确与否都无法登录
如果做了密钥认证,远程登录时无需密码即可登录,具体操作如下:
演示案例使用主机 zt 用户连接靶机 tom 用户
- [zt@localhost1 ~]$ ssh-keygen -f ~/.ssh/id_rsa -N ""
-
- -N:后面的双引号中没有空格,代表不对生成的私钥加密
- -f:指定生成私钥的路径和名称,默认路径:~/.ssh/id_rsa.pub
id_rsa:私钥 id_rsa.pub:公钥
- [zt@localhost1 ~]$ ssh-copy-id tom@192.168.23.133
-
- 在执行ssh-copy-id命令之前,需要确保本地计算机上已经生成了密钥对,
- 并且公钥已经保存在正确的位置(默认为~/.ssh/id_rsa.pub)
- 命令执行完成后会将公钥内容复制到uthorized_keys文件中,以实现无密码登录。
执行ssh-copy-id命令会自动在相应用户下创建.ssh/authorized_keys文件并保存公钥内容
以root用户更改配置文件如下:
- [root@localhost ~]# vim /etc/ssh/sshd_config
-
- 将#PubkeyAuthentication yes 修改为 PubkeyAuthentication no
-
- [root@localhost ~]# systemctl restart sshd
禁止密码登录
- [root@localhost ~]# vim /etc/ssh/sshd_config
-
- 将 #PasswordAuthentication yes 改为 PasswordAuthentication no
默认情况下是可以用root用户登录到远端服务器的,如果要禁用root用户登录请执行如下操作:
- [root@localhost ~]$ vim /etc/ssh/sshd_config
-
- 将PermitRootLogin yes 改为 PermitRootLogin no
禁止普通用户登录只需要在配置文件/etc/ssh/sshd_config中的任意一行添加DenyUsers userX 就可以限制用户X登录了。
- [root@localhost ~]# vim /etc/ssh/sshd_config
- [root@localhost ~]# systemctl restart sshd.service
有时候当我们在通过SSH登录一台服务器时,连接过程会比较慢,要等待十几秒才会出现输入密码的提示。很多时候是因为系统自动去做反向解析,把连接的IP地址反向解析成主机名,才会导致ssh速度慢。
为了防止这个问题,可以修改服务器上的配置,用vim编辑器打开/etc/ssh/sshd_config,找到UseDNS, 进行如下修改。
将#UseDNS yes修改为 no ,这里同时将注释符号#去掉,然后重启sshd即可。
有时候我们需要远程拷贝一些文件,例如,把文件或目录从A机器拷贝到B机器上去,这种情况下我们一般用scp或rsync。
以root用户的身份登录192.168.182.138并拷贝文件
当我们需要以特定身份登录目标服务器并拷贝文件时可以执行如下命令:
[root@192 ~]# scp /share_file zt@192.168.182.138:/share_file1
当我们将需要拷贝目录时通常会出现如下错误:
上述报错产生的原因是因为/share_file是一个目录并非一个文件,若需要拷贝目录需要加上 -r选项
[root@192 ~]# scp -r /share_file zt@192.168.182.138:/share_file1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。