-bash: cd: /root/.ssh: Not a directory

7 篇文章 0 订阅

解决异常:-bash: cd: /root/.ssh: Not a directory

1、免密登录,报错

事件场景:搭建了一个Hadoop集群,现在做脚本启动集群,发现需要做免密登录,在正常的免密设置中一台机遇到了该问题。

一:免密登录的设置步骤

原理:执行ssh-keygen生成秘钥 id_rsa.pub,将产生的id_rsa.pub放到authorized_keys文件,authorized_keys文件依次在集群中添加公钥id_rsa.pub,再覆盖之前集群里的authorized_keys,现在每个集群里的authorized_keys都有每个集群的公钥,免密登录完成。

1:执行 
ssh-keygen
2追加公钥
cat id_rsa.pub >> authorized_keys
3:传递 authorized_keys(xxx是用户,安装在root用户的就用root)(aaa:你的映射名称,可以在hosts文件里看)(~/.ssh:指定传送到目标及机器的某个文件夹下,这里是.ssh文件夹)
scp authorized_keys xxx@aaa:~/.ssh/
4:按照上面步骤依次执行,再把最终的authorized_keys放到所有集群机器上

二:遇到的问题:-bash: cd: /root/.ssh: Not a directory

(1)cd ~/.ssh
ssh
(2)ssh-keygen
rsa
(3)查询/root/目录下的文件
在这里插入图片描述

total 445536
dr-xr-x---.  4 root root      4096 Oct 27 17:05 .
dr-xr-xr-x. 18 root root       256 Oct 24 16:13 ..
-rw-------.  1 root root      1438 Feb 25  2020 anaconda-ks.cfg
-rw-r--r--   1 root root 168663748 Feb 26  2020 apache-storm-1.2.2.tar.gz
-rw-r--r--   1 root root  10371538 Jun  1 18:55 apache-tomcat-8.5.55.tar.gz
-rw-------.  1 root root     10242 Nov  3 19:53 .bash_history
-rw-r--r--.  1 root root        18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root       176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root       176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root       100 Dec 29  2013 .cshrc
-rw-r--r--   1 root root 181238643 Feb 26  2020 jdk-8u60-linux-x64.gz
-rw-r--r--   1 root root  55751827 Feb 26  2020 kafka_2.11-2.0.0.tgz
-rw-r--r--   1 root root    330361 Jun  2 15:57 keepalived-1.2.18.tar.gz
drwxr-xr-x   3 root root        26 Oct 24 19:08 logs
-rw-r--r--   1 root root    887908 Jun  1 17:43 nginx-1.9.9.tar.gz
drwxr-xr-x   2 root root        40 Feb 26  2020 .oracle_jre_usage
-rw-r--r--   1 root root   1729973 Mar  3  2020 redis-4.0.8.tar.gz
-rw-------   1 root root       399 Oct 27 17:05 .ssh
-rw-r--r--.  1 root root       129 Dec 29  2013 .tcshrc
-rw-r--r--   1 root root  37191810 Feb 26  2020 zookeeper-3.4.13.tar.gz
d:第一位表示文件类型。d是目录文件,l是链接文件,-是普通文件,p是管道

rwx:第2-4位表示这个文件的属主拥有的权限,r是读,w是写,x是执行。

r-x:第5-7位表示和这个文件属主所在同一个组的用户所具有的权限。

r-x:第8-10位表示其他用户所具有的权限。

所以我们已经存在的.ssh并不是一个文件夹,我们可以删除已有的 .ssh,再ssh-keygen就会有.ssh文件夹。

2、删除 .ssh

rm -rf .ssh

经过试验,解决问题。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值