声明:博主注明原创的文章,均意味着复制粘贴自不同的途径.如转帖相似度达到60%及以上着,请注明出处.谢谢!!! by cp3alai
一切都在顺其自然的进行着,虽然进度有点慢.
这几天学习了ssh命令,其实之前也一直都在用.但是每当输入密码的时候都暗自下定决心,搞清楚如何才能够不输入密码.但是每当看了别人的博客以后,就又打退堂鼓了.不是别人写的不好,是我看得不够认真,总是看着看着就溜号走神.
终于今天静下心来从书本里面细致的了解了一下不输入密码的方式.
首先介绍一下ssh命令吧.
基本用法:ssh username@hostaddr
可以指定端口: -p[port] 默认是22, 但是如果ssh服务不是在22监听,就需要这个选项.比如:ssh [email protected] -p2222
稍微高级一点的用法:
ssh username@host command : 不需要真的登陆到远程主机.只是临时建立链接,将command在远程主机执行,然后得到结果.这个command经过测试,可以用" | '都可以.也可以就像这样裸着.
ssh username@host -t ssh username@host2 : 如果需要访问的服务器需要通过中间服务器来跳,就需要这个命令.意思是首先登陆到host,然后通过host跳到host1.
就不演示基本用法了.同学们自己多敲几次记住就行了.
ssh协议族还有另外几个命令值得分享一下:
scp , sftp , sshfs
下面单独简单介绍一下,其实用法都可以参照ssh来使用.
1. scp
scp src dst : 顾名思义这个是一个复制命令,将src复制到dst.ssh服务器既可以作为src也可以作为dst.用法如下
scp username@host:/path/sth ./ 将远端文件sth复制到本地,反过来也是一样的用法.
2. sftp
sftp username@host -p[port] 登陆远端服务器.很多应用都实现了这个功能,比如filezilla.
登陆到服务器以后该怎么办呢?看下常用的命令
cd : 进入服务器的某个路径
lcd : 进入本地主机的某个路径
pwd : 查看服务器的绝对路径
lpwd : 查看本地的绝对路径
ls : 列举服务器某个路径的文件信息
lls : 列举本地主机的文件信息
get : 获取服务器文件到本地
put : 将本地的文件发送到远端.
有了这几个命令基本上就可以玩转sftp了.当然还有建立文件夹删除文件夹的操作.用的比较少.如果同学们不是很了解,可以help一下.会列出所有可用命令.
3. sshfs
哎,不错哟.这个很屌.
其实只是因为之前都没有接触过这个命令.这个命令的作用相当于mount.区别在于它是将远端服务器的某个目录挂载到本地的某个目录.然后就可以像访问本地文件一样来访问服务器文件了.意义大不大我不敢说,总之很酷.
用法和scp几乎一样: sshfs username@host:/path /mnt/ 这个意思是将远端host主机的paht挂载到本地的mnt目录.然后我们就可以进入到mount对path目录下的文件进行访问了.
卸载也很简单,和普通文件没有去呗:umount /mnt
ok,讲完了这几个命令,言归正传.说下如果不用输入密码来完成对服务器的访问.
这要说道ssh的一个机制,ssh采用了双重密钥的方式来保证安全的自动化认证.
步骤也很简单:
1. 创建ssh密钥,需要登陆到远程主机.
2. 将生成的公共密钥传送到远程主机,然后把内容放到~/.ssh/authorized_keys
ok,这就完成了.另外有个点需要补充,双重密钥包括私钥和公钥.公钥以.pub作为后缀.都默认放在了~/.ssh目录下
具体的操作步骤如下:
ssh-keygen rsa 使用rsa加密的方式生成私钥和公钥.后面会需要确认一些内容.可以默认,如果为了安全可以设置一下密码.我没有做过多了解,完全默认的.
将id_rsa.pub 传送到服务器,然后cat id_rsa.pub >> ~/.ssh/authorized_keys.如果后面这个文件没有也没有关系,建立一个就行.
现在再登陆一下试试吧.完美运行.终于,我也是可以不用密钥登陆服务器的人了.
ps:偷了个懒,都没有截图.但愿不影响阅读.
推荐linux shell脚本攻略.虽然不是那么详细,但是可以说常用的工具语法应有尽有.用了两个星期,虽然是走马观花了一遍.收货很大.