Linux SSH登录命令总结

当项目计算量比较大,我们需要将任务分布到多台电脑上面运行,因为对于分布式概念不熟,就想到了Linux最简单的ssh协议,远程控制其他电脑,然后写shell脚本统一在所有电脑上运行程序。

简单说,SSH是一种网络协议,用于计算机之间的加密登录。

如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。

需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文针对的实现是OpenSSH,它是自由软件,应用非常广泛。

下面我们以Ubuntu 16.04为例子看看使用ssh有哪些步骤:

1

在电脑中输入以下命令查看是否安装了ssh:

—ps -e | grep ssh

如果返回结果由上图中的sshd,则说明已经安装好ssh,否则可以使用下面命令在线安装:

—sudo apt-get install ssh

2

使用ssh命令登录其他电脑:

—ssh username@ip,

会提示需要输入密码,这时候输入密码即可远程控制另一台电脑.

3

ifconfig查看ip

如果有十台电脑需要你连接,分配任务,这样做就要每次都记住相应的电脑ip和密码,不利于我们用脚本统一运行,因此第一步就是需要将需要远程控制的电脑免密登录.

生成密钥:

—ssh-keygen

然后一路enter,此时会在主目录下生成.ssh的文件夹

用下面命令可以进行检查核对:

—ls -a 

此时说明秘钥对已经生成好了

5

将公钥通过scp拷贝到你需要连接的电脑上:

—cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

—scp ~/.ssh/id_rsa.pub username@ip:~/.ssh/id_rsa.pub_copy

远程连接上你需要连接作为服务器的电脑:

—touch ~/.ssh/authorized_keys

—cat ~/.ssh/id_rsa.pub_copy >> ~/.ssh/authorized_keys 

7

修改权限:

—chmod 755 ~

—chmod 700 ~/.ssh

—chmod 600 ~/.ssh/authorized_keys 

这里整个流程就结束了!

这里很多人不太明白755,700,600这些数据的含义,这个是linux权限的数字表达方式.给大家说明一下,比如我们在查看某个文件的权限时:

Linux SSH登录命令总结

我们会看到上面的结果,前面这一部分是由十位组成,1-3-3-3的方式,第一个字母表示文件类型,d表示的就是文件夹document的第一个字母,接下来第一个三位表示所有者的权限,第二个三位是所在组的权限,第三个三位是其他组的权限.R--读,W-写,X-执行,所以rwx表示当前组可读可写可执行.回到上面数字,R同时对应数字4,W对应2,X对应1.现在可以明白755表示所有者是可读可写可执行,所在组是可写可执行,其他组也是可写可执行.好啦,现在可以测试一下是否可以免密码登录他人电脑了:

Linux SSH登录命令总结

在运行过程中,你可能会遇到这个问题,这是表明ssh-agent在运行,但是没有找到相应的key,我们通过ssh-add,即可解决,同时也可以通过ssh-add -l来查看附加的key.

Linux SSH登录命令总结

在远程连接中还是需要输入用户名和ip,如果你不想输入用户名,就在最初为所有的电脑创建一个相同的用户即可.脚本运行所有程序:

Screen -dm ssh -t username1@ip1 “...”  (在引号里面输入你想运行的命令即可)

Screen -dm ssh -t username2@ip2 “...”  

ps:写得不好的地方希望大家多多指教.!

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/12531.html