远程连接服务器通过文字或图形接口的方式来远程登录系统,让你在远程的终端前面登录Linux主机以取得可操作主机的接口(shell),而登录后的操作系统感觉上就像坐在系统前面一样。
目前远程连接服务器的主要类型有文字接口和图像接口两种:
文字接口明文传输:Telnet、RSH等为主。目前非常少用。
文字接口加密:ssh为主,已经取代上述的Telnet、RSH等明文传输方式。
图形接口:XDMCP、CNC、XRDP等较为常见。
一篇介绍的比较好的博客 https://www.cnblogs.com/ftl1012/p/ssh.html
问题一:Permission denied, please try again
原因:服务器端不允许使用root身份登录
解决:服务器上,修改 /etc/ssh/sshd_config 中设置如此配置。允许root身份登录。默认是yes的
PermitRootLogin yes
重启ssh服务器,service ssh restart
问题二:Permission denied (publickey)
原因:服务器上已经存在客户端的公钥,不可以在发送
解决:在客户端执行 ssh-keygen -R 192.168.2.158(服务器IP);删除旧的公钥
然后再执行ssh-copy-id就可以了。
问题二:如果服务器端重装系统了,IP没有改变,则客户端重新登录时,记录的公钥和收到的公钥不一致,登入失败怎么办
解决:删除客户端的的公钥系统,重新生成,重新记录
rm /etc/ssh/ssh_host_*
/etc/init.d/sshd restart
ssh root@localhost
两台设备可以互为服务器,这时候需要在两个机器上都配置
ssh命令
ssh [ -f ] [-o 参数项目] [-p 非标准端口] [账号@]ip [命令]
-f:需要配合后面的[命令], 不登录远程主机直接发个命令过去而已,就可以在本机接收命令结果,让对方主机自己运行命令,立即返回本机。
-o 参数项目:
参数项目:
ConnecTimeout = 秒数:连接等待的秒数,减少等待的时间
StrictHostKeyChecking=[yes|no|ack],默认是ask,若要让public ke主动加入known_hosts, 则可以设置为no即可。
-p:如果sshd服务启动在非标准的端口,需使用此项目
[命令] : 不登录远程主机,直接发送命令过去。执行后立即返回本机
案例一:不登录对方主机,执行过命令后立刻返回,要等待命令执行完毕
[root@www~]# ssh student@192.168.2.159 find / &> /home/find.log
案例二:让对方主机自己运行命令,立刻返回本机,命令结果接收不中断
[root@www~]# ssh -f student@192.168.2.159 find / &> /home/find.log