客户端安装
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已经是当下的趋势
哈哈,算了,不水啦。