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 {productName} 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 {productName} software is uninstalled from
  host that the node represents. Possible values are as follows:

  `false`;;
    The {productName} software is not uninstalled from the host (default).
  `true`;;
    The {productName} software is uninstalled from the host. By
    default, if any node except the predefined node ``localhost-``domain
    resides on any host from which {productName} software is being
    uninstalled, the subcommand fails. To uninstall the
    {productName} 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 {productName} 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
    {productName} software files. Other content if the parent of the
    base installation directory, such as configuration files, are not removed.
  `true`;;
    The subcommand uninstalls the {productName} 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)]


