linux验证登陆脚本,用户和密码是系统里面的
时间: 2024-02-19 13:58:24 浏览: 17
好的,下面是一个 Linux 验证登录脚本示例,使用系统里的用户名和密码进行验证:
```bash
#!/bin/bash
# 获取用户名和密码
read -p "请输入用户名: " username
read -s -p "请输入密码: " password
echo
# 验证用户名和密码
if [ "$(getent passwd "$username")" ]; then
if [ $(echo "$password" | openssl passwd -stdin -salt "$(getent passwd "$username" | cut -d'$' -f3)") = "$(getent shadow "$username" | cut -d: -f2)" ]; then
echo "登录成功!"
else
echo "密码错误,请重新尝试!"
fi
else
echo "用户不存在,请重新尝试!"
fi
```
这个脚本会提示你输入用户名和密码,然后使用系统的 `getent` 命令获取用户信息进行验证,验证密码时使用了 `openssl passwd` 命令生成的 hash 值进行比对。如果验证成功,会输出 `登录成功!`,否则会输出相应的错误信息。
相关问题
linux验证登陆脚本
好的,下面是一个简单的 Linux 验证登录脚本示例:
```bash
#!/bin/bash
# 获取用户名和密码
read -p "请输入用户名: " username
read -s -p "请输入密码: " password
echo
# 验证用户名和密码
if [ "$username" == "your_username" ] && [ "$password" == "your_password" ]; then
echo "登录成功!"
else
echo "登录失败,请重新尝试!"
fi
```
请将 `your_username` 和 `your_password` 替换成你的实际用户名和密码。在脚本执行时,会提示你输入用户名和密码,然后进行验证。如果验证成功,会输出 `登录成功!`,否则输出 `登录失败,请重新尝试!`。
putty可以使用账号密码登陆,py脚本使用paramiko登录linux是提示验证失败
这个问题可能是由于 paramiko 使用的是密钥认证方式,而不是账号密码认证方式导致的。你可以尝试在 paramiko 的 SSHClient 对象中设置用户名和密码,以使用账号密码进行认证。
具体来说,你可以使用 SSHClient 的 `set_missing_host_key_policy` 方法来设置主机密钥策略,然后使用 `connect` 方法连接到远程主机,并指定用户名和密码作为参数。
以下是一个示例代码:
```python
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('your-hostname', username='your-username', password='your-password')
```
请注意,这样做可能会降低安全性,因为密码可能会在传输过程中被拦截。如果可能的话,建议使用密钥认证方式,或者使用 SSH Agent 进行身份验证。