ssh一般是远程安全登陆
如果是不需要配置ssh服务,只需下载安装相应的客户端就行了
sudo apt-get install openssh-client
安装成功后,在终端上敲上ssh ,
如果有各种选项提示,就说明安装成功了
服务配置
如果需要配置相应的服务,也不是很难
sudo apt-get install openssh-server
一般就会自动启动服务了(以后开机也是如此)
为了验证下我们尝试一下指令
ps -e | grep sshd
出现相应的进程信息就说明ssh服务正常启动了
配置文件
一般来说ssh服务默认端口是22,可以通过指令验证下:
sudo netstat -ntlp | grep ssh
如果有需要该服务端口,可以修改/etc/ssh/sshd_config 文件
vim /etc/ssh/sshd_config
修改Port 22 为Port XXX(任意你想要的端口号,不过要验证该端口是否已被占用,可以通过netstat命令)
修改后可能会遇到无法保存的清况,因为在linux 上会有各种权限问题,所以只要改下文件的权限就可以了
sudo chmod 777 /etc/ssh/sshd_config
然后就能保存了,为了安全,你要在保存后把权限改回去
sudo chmod 644 /etc/ssh/sshd_config
最后重新启动服务就行了
sudo service ssh restart 或者sudo /etc/init.d/ssh 就可以重新启动了
登陆验证
接下来就是登陆了,直接在终端上敲指令
ssh username@ip (username 是你的用户名,ip是你的主机ip)
然后输入密码,就行啦
可以先在自己主机上体验,只需要把ip设置为127.0.0.1就行了
也可以远程登陆,只需要把ip 改为远程主机的ip就行啦
无密码登陆的两种方法
一般对程序员来说,远程登陆进行各种操作是家常便饭,所以我们可能会厌烦每次都输密码
所以我们可以先写个shell脚本实现自动登陆,附带代码如下,阅读代码可能要了解下expect工具
然后还有一种实现的方式,就是讲自己密钥对里面的公钥放在远程主机的.ssh 文件夹下面的authorized_keys文件中,
我们知道,我们这种远程登陆是基于ssh, 所以就有密钥对这个概念了,如果大家对密钥不是很理解,可以参考下我之前关于
数字签名的博文,但是要比较深刻理解的可能需要参考更多的资料,这里推荐下大家百度下阮一峰的博客
首先,在自己当前用户的主目录下查找有没有.ssh这个目录,如果没有可能需要生成密钥对了
在终端敲下指令
ssh-keygen -t rsa
会在当前用户的主目录生成.ssh文件夹,文件夹中有id_rsa(私钥),和id_rsa.pub(公钥)两个文件
我们要做的就是ssh远程登陆到远程主机,将我们的公钥放到远程主机的.ssh目录下的authorized_keys文件中
这样以后我们就可以不需要密码就实现远程登陆了
远程上传文件或者拷贝文件的指令:
scp
将本地文件拷贝到远程:scp filename username@ip:path
从远程将文件拷回本地:scp username@ip:filename 本地路径
如果是目录操作,只需要加上 -r选项即可
远程文件操作可视化
然后经常敲命令对有些人来说也是比较烦的,毕竟可视化的话信息量更大也更人性化,
如果有这方面需求的,推荐下Ubuntu软件中心的一款ftp软件 fileZilla ,直接在软件中心下载安装就行了
操作起来可能更方便些
然后对于远程操作,就没什么可以讲的了,只讲一点,习惯用vim文本编辑器,因为你别无选择
扯下git
ssh 或者git 设置无密码自动登陆远程仓库
一般都会有密码验证,不过可以通过设置远程主机给本地主机提供便利
可以通过公钥的方式
说道这里,可以扯下git题外话(如果只是想了解ssh操作的童鞋可以止步了):
如果用过git的人应该也知道git也是基于ssh的,所以,我们也可以通过相似的方法来实现
不需要密码就直接git pull , git push,这样也是极大方便了我们的开发
因为现如今的开发一般都是利用git分布式版本控制系统来进行协作开发
我们可以在自己的主机上建立git 仓库,也可以在github上建立,直接把代码托管到github已经是当下的趋势
哈哈,算了,不水啦。