type=page
status=published
title=delete-node-ssh
next=delete-password-alias.html
prev=delete-node-dcom.html
~~~~~~

delete-node-ssh
===============

[[delete-node-ssh-1]][[GSRFM00100]][[delete-node-ssh]]

delete-node-ssh
---------------

Deletes a node that is enabled for communication over SSH

[[sthref914]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-node-ssh [--help]
[--uninstall={false|true}] [--force={false|true}]
node-name
----

[[sthref915]]

=== Description

The `delete-node-ssh` subcommand deletes a node that is enabled for
communication over secure shell (SSH) from the domain. This subcommand
does not require SSH to be configured.

This subcommand can delete only a node that is enabled for communication
over SSH. The subcommand for deleting other types of nodes depends on
the type of the node:

* A node that is enabled for communication over the Distributed
Component Object Model (DCOM) remote protocol must be deleted by using
the link:delete-node-dcom.html#delete-node-dcom-1[`delete-node-dcom`(1)]
subcommand.
* A node that is not enabled for remote communication must be deleted by
using the
link:delete-node-config.html#delete-node-config-1[`delete-node-config`(1)]
subcommand.

To determine whether a node is enabled for communication over SSH, use
the link:list-nodes.html#list-nodes-1[`list-nodes`(1)] subcommand.

No \{product---name} instances must reside on the node that is being
deleted. Otherwise, the subcommand fails. Before running this
subcommand, delete any instances that reside on the node by using, for
example, the
link:delete-instance.html#delete-instance-1[`delete-instance`(1)]
subcommand or the
link:delete-local-instance.html#delete-local-instance-1[`delete-local-instance`(1)]
subcommand.

This subcommand is supported in remote mode only.

[[sthref916]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--uninstall`::
  Specifies whether the \{product---name} software is uninstalled from
  host that the node represents. Possible values are as follows:

  `false`;;
    The \{product---name} software is not uninstalled from the host (default).
  `true`;;
    The \{product---name} software is uninstalled from the host. By
    default, if any node except the predefined node ``localhost-``domain
    resides on any host from which \{product---name} software is being
    uninstalled, the subcommand fails. To uninstall the
    \{product---name} software from a host on which user-defined nodes
    reside, set the `--force` option to `true`. If the `--force` option
    is `true`, the subcommand removes the entire content of the parent
    of the base installation directory.

`--force`::
  If `--uninstall` is true, specifies whether the subcommand uninstalls
  the \{product---name} software from a host even if a user-defined node
  resides on the host. Possible values are as follows:

  `false`;;
    If a user-defined node resides on a host, the software is not
    uninstalled and the subcommand fails (default). +
    If the `--force` option is `false`, the subcommand removes only the
    \{product---name} software files. Other content if the parent of the
    base installation directory, such as configuration files, are not removed.
  `true`;;
    The subcommand uninstalls the \{product---name} software from the
    host even if a user-defined node resides on the host. +
    If the `--force` option is `true`, the subcommand removes the entire
    content of the parent of the base installation directory.

[[sthref917]]

=== Operands

node-name::
  The name of the node to delete. The node must enabled for
  communication over SSH. Otherwise, an error occurs.

[[sthref918]]

=== Examples

[[GSRFM571]][[sthref919]]

==== Example 1   Deleting a Node That Is Enabled for Communication Over SSH

This example deletes the node `eg1`, which is enabled for communication
over SSH.

[source]
----
asadmin> delete-node-ssh eg1
Command delete-node-ssh executed successfully.
----

[[sthref920]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref921]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-node-dcom.html#create-node-dcom-1[`create-node-dcom`(1)],
link:create-node-ssh.html#create-node-ssh-1[`create-node-ssh`(1)],
link:delete-instance.html#delete-instance-1[`delete-instance`(1)],
link:delete-local-instance.html#delete-local-instance-1[`delete-local-instance`(1)],
link:delete-node-config.html#delete-node-config-1[`delete-node-config`(1)],
link:delete-node-dcom.html#delete-node-dcom-1[`delete-node-dcom`(1)],
link:install-node.html#install-node-1[`install-node`(1)],
link:install-node-dcom.html#install-node-dcom-1[`install-node-dcom`(1)],
link:install-node-ssh.html#install-node-ssh-1[`install-node-ssh`(1)],
link:list-nodes.html#list-nodes-1[`list-nodes`(1)],
link:uninstall-node.html#uninstall-node-1[`uninstall-node`(1)],
link:uninstall-node-dcom.html#uninstall-node-dcom-1[`uninstall-node-dcom`(1)],
link:uninstall-node-ssh.html#uninstall-node-ssh-1[`uninstall-node-ssh`(1)],
link:update-node-ssh.html#update-node-dcom-1[`update-node-dcom`(1)],
link:update-node-ssh001.html#update-node-ssh-1[`update-node-ssh`(1)]


