最近安装linux虚拟机,出了几个小问题:1. 只有root用户 2.ftp连接不上 3.ssh连接虚拟机如何免密
1.创建用户
useradd –d /usr/sam -m sam 创建用户sam,并指定其默认的用户目录
passwd sam 给sam用户指定密码
over!
追加:
su 注:用户切换工具
sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现
给sam添加sudo权限
vi /etc/sudoers 找到 root ALL=(ALL) ALL 下面追加一行 sam ALL=(ALL) ALL,退出强制保存 wq!
2.ftp连接不上
先查看有木有ftp组件,service vsftpd status
如果没有的话,安装:yum install vsftpd
安装后再次查看状态,看到 Active: active (running) 表示服务已启动
如果还是连接不上,说明防火墙把21端口给禁掉了;关掉防火墙或者是设置端口意外。
我这里是关闭防火墙:systemctl disable firewalld.service 这样重启时防火墙也是关闭状态
搞定!
追加:
systemctl 系统服务管理器指令,来自: http://man.linuxde.net/systemctl
是chkconfig、service的合集:
格式: systemctl 指令 服务名.service
指令:start/stop status enable/disable list-units
3. 免密登录
准备工作:
安装上传下载工具:yum install -y lrzsz
基本原理:两台电脑AB、A想免密访问B,A生成公钥和私钥,将公钥发给B,B将A的公钥导入到自己的认证文件中。
权限:.ssh目录的权限必须是700 ; .ssh/authorized_keys文件权限必须是600 (不懂往后看) 如:sudo chmod 700 /root/.ssh/
可以先实现虚拟机中 root 和 sam 两个用户的互联: 首先root用户ssh 测试连接sam: ssh sam@localhost 输入密码,连接成功! 1.root下:
id_rsa id_rsa.pub known_hosts
root用户生成公私钥:ssh-keygen -t rsa -P ''
回车确定后,查看.ssh 目录内容,ls /root/.ssh/
等下id_rsa.pub 复制到 sam目录 .ssh及目录下文件是以上命令生成的,id_rsa 私钥 id_rsa.pub 公钥 known_hosts 访问过root用户的计算机的信息 2.同样可以在sam用户下生成公私钥
我们把root下的 id_rsa.pub 追加到sam .ssh 目录下的 authorized_keys
传送文件: scp -p ~/.ssh/id_rsa.pub sam@localhost:~/.ssh/root_localhost.pub
追加: cat root_localhost.pub >> authorized_keys
先登录到sam用户,然后对 authorized_keys 赋权限 600 chmod 600 ~/.ssh/authorized_keys 测试一下,,root用户下访问sam用户,就可以免密啦! 同样的,我们还可以自登陆免密,即 root/sam用户自己ssh 自己,免密 如,root下, ssh root@localhost
方法一样,只需将id_rsa.pub 追加到authorized_keys中
一定要:
chmod 700 /root/.ssh/ chmod 600 /root/.ssh/authorized_keys 追加:
常用修改权限的命令:
sudo chmod 600 ××× (只有所有者有读和写的权限)
sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
sudo chmod 666 ××× (每个人都有读和写的权限)
sudo chmod 777 ××× (每个人都有读和写以及执行的权限)
3.windows 免密登录linux虚拟机
有了以上的铺垫,windows无非要生成秘钥,如何生成秘钥,下载github客户端,然后配置HOME用户变量和Path系统变量
path变量中添加:C:\Users\Administrator\AppData\Local\GitHub\PortableGit_f02737a78695063deace08e96d5042710d3e32db\usr\bin 可以看gitshell路径,找到ssh_keygen命令的目录,配置进去
HOME用户变量: C:\Users\Administrator
然后按上面方法就ok啦!
xshell 终端工具上传文件命令: rz