SSH & SCP no Password

如何在脚本中使用SSH或者SCP 的过程中免去输入密码的麻烦?

 

步骤如下:

 

1:在本地机器上生成公钥

 ssh-keygen -t dsa

         2:将步骤1生成的公钥拷贝到目标机器(远程机器、要连接的机器)

 ssh-copy-id -i ~/.ssh/id_dsa.pub user@remotexx

      如果步骤失败,可以手段拷贝公钥文件中的内容到目标机的authorized_keys文件中

 

详情见如下链接:

 

 

http://hostingrails.com/HowTo-SSH-SCP-without-a-password

### 解决 SCP 命令权限被拒绝的问题 当遇到 `scp` 报错 `Permission denied (publickey,password)` 的情况时,这通常意味着身份验证失败。以下是几种可能的原因及解决方案: #### 1. 使用 SSH 密钥对认证 如果配置了基于密钥的身份验证,则需要确认公钥已正确添加至目标主机的 `.ssh/authorized_keys` 文件中。 ```bash cat ~/.ssh/id_rsa.pub | ssh user@remote "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" ``` 此命令会将本地用户的公钥追加到远程服务器上的授权键列表里[^2]。 #### 2. 修改SSH配置允许Root登录 对于某些严格的安全策略,默认情况下可能会禁用 root 用户通过 SSH 登录。可以通过编辑 `/etc/ssh/sshd_config` 文件来更改这一设置: - 将 `PermitRootLogin no` 或者 `without-password` 改为 `yes` - 执行 `sudo systemctl restart sshd` 来重新加载配置并应用更改[^3] 需要注意的是,在生产环境中不建议开启 Root 远程登录功能,因为这样做存在安全隐患;可以考虑创建具有适当权限的一般用户来进行日常操作管理。 #### 3. 检查文件权限 确保私钥文件拥有合适的读写权限(通常是 600),以及 .ssh 目录本身也应具备正确的访问控制属性(700)。错误的权限可能导致即使有有效的凭证也无法成功连接。 ```bash chmod 600 ~/.ssh/id_rsa chmod 700 ~/.ssh/ ``` 另外还需注意检查远程端的相关路径是否存在并且可由当前尝试建立连接的账户所触及。 #### 4. 验证网络连通性和防火墙状态 最后还要排除由于网络层面的因素造成的无法正常通信的可能性,比如 IP 地址是否可达、端口是否开放等。有时也会涉及到企业内部安全组规则或是云服务商自带的安全防护机制阻止了外部请求到达指定实例的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值