mirror of
https://github.com/containers/podman
synced 2024-10-19 16:54:07 +00:00
podman-remote fixes for msi and client
correct small typo that sets the path on windows via the msi xml. in the remote client, prompt for SSH password when no identity or alternate means of authentication are provided. Signed-off-by: Brent Baude <bbaude@redhat.com>
This commit is contained in:
parent
8eaacec150
commit
6ff42395d0
|
@ -290,6 +290,7 @@ func resolveDestination() (string, string) {
|
|||
|
||||
cfg, err := config.ReadCustomConfig()
|
||||
if err != nil {
|
||||
logrus.Warning(errors.Wrap(err, "unable to read local containers.conf"))
|
||||
return registry.DefaultAPIAddress(), ""
|
||||
}
|
||||
|
||||
|
|
|
@ -124,6 +124,7 @@ func add(cmd *cobra.Command, args []string) error {
|
|||
cfg.Engine.ServiceDestinations = map[string]config.Destination{
|
||||
args[0]: dst,
|
||||
}
|
||||
cfg.Engine.ActiveService = args[0]
|
||||
} else {
|
||||
cfg.Engine.ServiceDestinations[args[0]] = dst
|
||||
}
|
||||
|
@ -181,12 +182,20 @@ func getUDS(cmd *cobra.Command, uri *url.URL) (string, error) {
|
|||
authMethods = append(authMethods, ssh.PublicKeysCallback(a.Signers))
|
||||
}
|
||||
|
||||
config := &ssh.ClientConfig{
|
||||
if len(authMethods) == 0 {
|
||||
pass, err := terminal.ReadPassword(fmt.Sprintf("%s's login password:", uri.User.Username()))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
authMethods = append(authMethods, ssh.Password(string(pass)))
|
||||
}
|
||||
|
||||
cfg := &ssh.ClientConfig{
|
||||
User: uri.User.Username(),
|
||||
Auth: authMethods,
|
||||
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
|
||||
}
|
||||
dial, err := ssh.Dial("tcp", uri.Host, config)
|
||||
dial, err := ssh.Dial("tcp", uri.Host, cfg)
|
||||
if err != nil {
|
||||
return "", errors.Wrapf(err, "failed to connect to %q", uri.Host)
|
||||
}
|
||||
|
|
|
@ -24,8 +24,7 @@
|
|||
<CreateFolder/>
|
||||
</Component>
|
||||
<Component Id="MainExecutable" Guid="73752F94-6589-4C7B-ABED-39D655A19714">
|
||||
<File Id="520C6E17-77A2-4F41-9611-30FA763A0702" Name="podman-remote-windows.exe" Source="bin/podman-remote-windows.exe"/>
|
||||
<File Id="A14218A0-4180-44AC-B109-7C63B3099DCA" Name="podman.bat" Source="podman.bat" KeyPath="yes"/>
|
||||
<File Id="520C6E17-77A2-4F41-9611-30FA763A0702" Name="podman.exe" Source="bin/podman-remote-windows.exe" KeyPath="yes"/>
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
|
@ -33,7 +32,7 @@
|
|||
</Directory>
|
||||
|
||||
<Property Id="setx" Value="setx.exe"/>
|
||||
<CustomAction Id="ChangePath" ExeCommand="PATH "%PATH%;[INSTALLDIR] "" Property="setx" Execute="deferred" Impersonate="yes" Return="check"/>
|
||||
<CustomAction Id="ChangePath" ExeCommand="PATH "%PATH%;[INSTALLDIR]"" Property="setx" Execute="deferred" Impersonate="yes" Return="check"/>
|
||||
|
||||
<Feature Id="Complete" Level="1">
|
||||
<ComponentRef Id="INSTALLDIR_Component"/>
|
||||
|
|
|
@ -180,8 +180,9 @@ func pingNewConnection(ctx context.Context) error {
|
|||
}
|
||||
|
||||
func sshClient(_url *url.URL, secure bool, passPhrase string, identity string) (Connection, error) {
|
||||
// if you modify the authmethods or their conditionals, you will also need to make similar
|
||||
// changes in the client (currently cmd/podman/system/connection/add getUDS).
|
||||
authMethods := []ssh.AuthMethod{}
|
||||
|
||||
if len(identity) > 0 {
|
||||
auth, err := terminal.PublicKey(identity, []byte(passPhrase))
|
||||
if err != nil {
|
||||
|
@ -205,6 +206,13 @@ func sshClient(_url *url.URL, secure bool, passPhrase string, identity string) (
|
|||
if pw, found := _url.User.Password(); found {
|
||||
authMethods = append(authMethods, ssh.Password(pw))
|
||||
}
|
||||
if len(authMethods) == 0 {
|
||||
pass, err := terminal.ReadPassword("Login password:")
|
||||
if err != nil {
|
||||
return Connection{}, err
|
||||
}
|
||||
authMethods = append(authMethods, ssh.Password(string(pass)))
|
||||
}
|
||||
|
||||
callback := ssh.InsecureIgnoreHostKey()
|
||||
if secure {
|
||||
|
|
Loading…
Reference in a new issue