sha1pass
명령 행에서 민감한 비밀번호의 해시를 생성하는 데 사용했다고 가정하십시오 . sha1pass mysecret
해시를 생성하는 데 사용할 수 mysecret
있지만 mysecret
현재 bash 기록에있는 단점이 있습니다 . -style 프롬프트 mysecret
를 사용하여 일반 텍스트로 표시 하지 않고이 명령의 최종 목표를 달성 할 수있는 방법이 passwd
있습니까?
또한 민감한 데이터를 모든 명령에 전달하기 위해이를 수행하는 일반적인 방법에 관심이 있습니다. 민감한 데이터가 인수 (예 : in sha1pass
) 또는 STDIN에서 일부 명령 으로 전달되면 메소드가 변경됩니다 .
이것을 달성 할 수있는 방법이 있습니까?
편집 :이 질문은 많은 관심을 끌었으며 아래에 몇 가지 좋은 답변이 있습니다. 요약은 다음과 같습니다.
- 당으로 Kusalananda의 대답 @ , 이상적으로 하나는 유틸리티 명령 줄 인수로 암호 나 비밀을 줄 필요가 없을 것입니다. 이것은 그에 의해 설명 된 여러 가지 방법으로 취약하며 STDIN에서 비밀 입력을 취할 수있는 더 잘 설계된 유틸리티를 사용해야합니다
- @vfbsilva의 답변 은 bash 기록에 물건이 저장되는 것을 방지하는 방법을 설명합니다
- @Jonathan의 답변 은 프로그램이 STDIN에서 비밀 데이터를 취할 수있는 한 이것을 달성하기위한 완벽하게 좋은 방법을 설명합니다. 따라서이 답변을 수락하기로 결정했습니다.
sha1pass
내 OP의 예는 하나의 예이지만 STDIN에 대한 데이터를 가져 오는 더 나은 도구가 존재한다는 논의가있었습니다. - 로 @R .. 메모 그의 대답 변수에 명령 확장의 사용은 하지 안전합니다.
요약하자면, @Jonathan의 대답 은 귀하가 잘 설계되고 올바르게 작동하는 프로그램이 있다는 점에서 가장 좋은 해결책이기 때문에 받아 들였습니다 . 암호 나 암호를 명령 줄 인수로 전달하는 것은 근본적으로 안전하지 않지만 다른 답변은 간단한 보안 문제를 완화하는 방법을 제공합니다.
sha1pass mysecret
가 실행중인 것을 볼 수 있으므로 현재 상태를 알 수mysecret
있습니다. (물론 프로그램이 실제로 실행되는 동안 몇 초 동안 만 작동합니다 ...)