Securely manage passwords in terminal
A nifty trick when you are entering a password in your terminal:
read -s mypassword
<enter your password>
kubectl create secret docker-registry registry-credentials --namespace nuclio \
--docker-username <username> \
--docker-password $mypassword \
--docker-server <URL> \
--docker-email ignored@nuclio.io
unset mypassword
man bash
Entry for man bash
which explains read
:
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
One line is read from the standard input, or from the file descriptor fd supplied as an argument to the -u option, split into words as described above under Word
words and their intervening delimiters are assigned to the last name. If there are fewer words read from the input stream than names, the remaining names are
Splitting). The backslash character (\) may be used to remove any special meaning for the next character read and for line continuation. Options, if supplied,
-e If the standard input is coming from a terminal, readline (see READLINE above) is used to obtain the line. Readline uses the current (or default, if line
If readline is being used to read the line, text is placed into the editing buffer before editing begins.
read returns after reading nchars characters rather than waiting for a complete line of input, but honors a delimiter if fewer than nchars characters are
read before the delimiter.
read returns after reading exactly nchars characters rather than waiting for a complete line of input, unless EOF is encountered or read times out. Delim‐
iter characters encountered in the input are not treated specially and do not cause read to return until nchars characters are read. The result is not
split on the characters in IFS; the intent is that the variable is assigned exactly the characters read (with the exception of backslash; see the -r option
Display prompt on standard error, without a trailing newline, before attempting to read any input. The prompt is displayed only if input is coming from a
Cause read to time out and return failure if a complete line of input (or a specified number of characters) is not read within timeout seconds. timeout
may be a decimal number with a fractional portion following the decimal point. This option is only effective if read is reading input from a terminal,
pipe, or other special file; it has no effect when reading from regular files. If read times out, read saves any partial input read into the specified
variable name. If timeout is 0, read returns immediately, without trying to read any data. The exit status is 0 if input is available on the specified
If no names are supplied, the line read is assigned to the variable REPLY. The exit status is zero, unless end-of-file is encountered, read times out (in which
case the status is greater than 128), a variable assignment error (such as assigning to a readonly variable) occurs, or an invalid file descriptor is supplied as