标签: password

curl 如何防止密码出现在 ps 输出中?

前段时间我注意到curl作为命令行参数提供的用户名和密码没有出现在ps输出中(尽管它们当然可能出现在您的 bash 历史记录中)。

它们同样不会出现在/proc/PID/cmdline.

(不过,可以推导出组合的用户名/密码参数的长度。)

演示如下:

[root@localhost ~]# nc -l 80 &
[1] 3342
[root@localhost ~]# curl -u iamsam:samiam localhost &
[2] 3343
[root@localhost ~]# GET / HTTP/1.1
Authorization: Basic aWFtc2FtOnNhbWlhbQ==
User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Host: localhost
Accept: */*



[1]+  Stopped                 nc -l 80
[root@localhost ~]# jobs
[1]+  Stopped                 nc -l 80
[2]-  Running                 curl -u iamsam:samiam localhost &
[root@localhost ~]# ps -ef | grep curl
root      3343  3258  0 …
Run Code Online (Sandbox Code Playgroud)

security password ps curl arguments

72
推荐指数
2
解决办法
6812
查看次数

允许 user1 在没有密码的情况下“su - user2”

我需要允许用户martin切换到martin-test没有密码的用户

su - martin-test
Run Code Online (Sandbox Code Playgroud)

我认为这可以在/etc/pam.d/su. 该文件中已经有一些可以取消注释的行。但是,我不喜欢将 user 添加martin到 group的想法wheel。我不希望给martin任何更多的特权,而不是能够切换到martin-test。我也不想用sudo

在保持用户权限martin最小的情况下,最好的方法是什么?

users password authentication pam

70
推荐指数
3
解决办法
11万
查看次数

添加一个没有密码但有 SSH 和公钥的用户

我想向 Red Hat Linux 添加一个用户,该用户不会使用密码登录,而是使用公钥进行 ssh。这将在命令行上。

password ssh authentication useradd

61
推荐指数
3
解决办法
10万
查看次数

SSH 不断跳过我的公钥并要求输入密码

每次通过 ssh 连接到远程服务器时,我都需要提供密码。我使用以下命令将我的公钥 (id_dsa.pub) 复制到远程服务器:

ssh-copy-id -i id_dsa.pub user@server
Run Code Online (Sandbox Code Playgroud)

我检查它是否正确添加到authorized_keys。所有文件/目录权限都正确:

~user 755
~user/.ssh 700
~user/.ssh/authorized_keys 640
~user/.ssh/id_dsa.pub 644
Run Code Online (Sandbox Code Playgroud)

/etc/ssh/sshd_config 中的 PasswordAuthentication 字段设置为 yes。我将 sshd 置于调试模式并将详细开关添加到 ssh 命令。我的印象是服务器没有尝试使用 id_pub.dsa 因为线路

Skipping ssh-dss key: ........... not in PubkeyAcceptedKeyTypes
Run Code Online (Sandbox Code Playgroud)

服务器端没有加密光盘。任何想法如何进步?这是 ssh 守护进程调试信息:

sudo /usr/sbin/sshd -d
====
debug1: sshd version OpenSSH_6.6.1, OpenSSL 1.0.1f 6 Jan 2014
debug1: key_parse_private2: missing begin marker
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: key_parse_private2: missing begin marker
debug1: read …
Run Code Online (Sandbox Code Playgroud)

password ssh authentication

61
推荐指数
1
解决办法
7万
查看次数

如何将密码传递给mysql命令行

foo.php例如P455w0rd,当我尝试使用它时,我将 MySQL 密码保存在一个文件中:

$ cat foo.php | grep '$dbpwd=' | cut -d '"' -f 2 | mysql -U root -p mydb -h friendserver
Enter password: (holds)

$ echo P455w0rd | mysql -u root -p mydb -h friendserver
Enter password: (holds)
Run Code Online (Sandbox Code Playgroud)

这两个选项仍然要求输入密码,从 发送密码的正确方法是stdin什么?

password mysql stdin

54
推荐指数
5
解决办法
9万
查看次数

你如何在 Debian 上更改 root 密码?

我想将我在 Debian 网络服务器上分配给 root 的密码更改为更长更安全的密码。

我怎么做?我没有忘记/丢失当前密码,我只是想更改它。

password root debian

50
推荐指数
2
解决办法
21万
查看次数

对于任何命令,有没有办法使用提示在 bash 中传递敏感数据?

假设我使用sha1pass在命令行上生成一些敏感密码的哈希值。我可以sha1pass mysecret用来生成一个散列,mysecret但这有一个mysecret现在在 bash 历史中的缺点。有没有办法在避免mysecret以纯文本显示的同时实现此命令的最终目标,也许是通过使用passwd-style 提示?

我也对将敏感数据传递给任何命令的通用方法感兴趣。当敏感数据作为参数(例如 in sha1pass)或在 STDIN 上传递给某个命令时,该方法会发生变化。

有没有办法做到这一点?


编辑:这个问题引起了很多关注,下面提供了几个很好的答案。总结如下:

  • 根据@Kusalananda 的回答,理想情况下永远不必将密码或机密作为实用程序的命令行参数提供。正如他所描述的,这在几个方面都很脆弱,应该使用设计更好的实用程序,该实用程序能够在 STDIN 上获取秘密输入
  • @vfbsilva 的回答描述了如何防止东西被存储在 bash 历史记录中
  • @Jonathan 的回答描述了一个非常好的方法来完成这个,只要程序可以在 STDIN 上获取它的秘密数据。因此,我决定接受这个答案。sha1pass在我的 OP 中只是一个例子,但讨论已经确定存在更好的工具来获取 STDIN 上的数据。
  • @R ..在笔记他的回答,对一个变量使用命令扩展是不是安全的。

所以,总而言之,我接受了@Jonathan 的回答,因为这是最好的解决方案,因为您有一个设计良好且行为良好的程序可供使用。尽管将密码或机密作为命令行参数传递从根本上说是不安全的,但其他答案提供了减轻简单安全问题的方法。

shell security password

50
推荐指数
5
解决办法
3万
查看次数

如何为公钥ssh授权而不是密码授权解锁帐户?

ssh 不允许我登录,因为帐户已锁定。我想在我的服务器上解锁用户以通过 ssh 进行公钥授权,但不启用密码登录。

我试过了:

# passwd -u username
passwd: unlocking the password would result in a passwordless account.
You should set a password with usermod -p to unlock the password of this account.
Run Code Online (Sandbox Code Playgroud)

身份验证日志条目:

Mar 28 00:00:00 vm11111 sshd[11111]: User username not allowed because account is locked
Mar 28 00:00:00 vm11111 sshd[11111]: input_userauth_request: invalid user username [preauth]
Run Code Online (Sandbox Code Playgroud)

password ssh

48
推荐指数
3
解决办法
6万
查看次数

输入特定密码如何触发系统自毁

如何配置我的系统以在输入特定密码时销毁所有个人数据?这背后的动机是 NSA 的东西。

我想有三个主要用例。

  1. 在登录时,输入预先确定的密码会触发用户数据的破坏。
  2. 在系统唤醒。输入预先确定的密码会触发个人数据的破坏。
  3. 使用预先确定的密码输入任何特权命令会触发个人数据的破坏。

我知道像

dd if=/dev/urandom of=/dev/$HOME
Run Code Online (Sandbox Code Playgroud)

应该足以进行数据销毁。但是,我不知道如何通过某个密码触发它。

如果在删除数据时允许登录,则奖励积分。

security password

47
推荐指数
5
解决办法
3万
查看次数

单行生成易于记忆的密码?

什么是生成易于记忆的密码的好单行代码,例如 xkcd 的正确马电池主食或比特币种子?

编辑 1

这与生成随机字符串不同,因为随机字符串根本无法记忆。与强制性的 xkcd 相比......

scripting password shell-script

44
推荐指数
5
解决办法
7930
查看次数

标签 统计

password ×10

authentication ×3

security ×3

ssh ×3

arguments ×1

curl ×1

debian ×1

mysql ×1

pam ×1

ps ×1

root ×1

scripting ×1

shell ×1

shell-script ×1

stdin ×1

useradd ×1

users ×1